Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÈçºÎɾ³ý SQL Server ±íÖеÄÖظ´ÐÐ

    Microsoft SQL Server ±í²»Ó¦¸Ã°üº¬Öظ´ÐкͷÇΨһÖ÷¼ü¡£Îª¼ò½àÆð¼û£¬ÔÚ±¾ÎÄÖÐÎÒÃÇÓÐʱ³ÆÖ÷¼üΪ“¼ü”»ò“PK”£¬µ«ÕâʼÖÕ±íʾ“Ö÷¼ü”¡£Öظ´µÄ PK Î¥·´ÁËʵÌåÍêÕûÐÔ£¬ÔÚ¹ØϵϵͳÖÐÊDz»ÔÊÐíµÄ¡£SQL Server Óи÷ÖÖÇ¿ÖÆÖ´ÐÐʵÌåÍêÕûÐԵĻúÖÆ£¬°üÀ¨Ë÷Òý¡¢Î¨Ò»Ô¼Êø¡¢Ö÷¼üÔ¼ÊøºÍ´¥·¢Æ÷¡£
    ¾¡¹ÜÈç´Ë£¬ÔÚijЩÇé¿öÏ»¹¿ÉÄÜ»á³öÏÖÖظ´µÄÖ÷¼ü;Èç¹û³öÏÖ´ËÀàÇé¿ö£¬¾Í±ØÐëÇå³ýÖظ´Ö÷¼ü¡£³öÏÖÖظ´Ö÷¼üµÄÇéÐÎÖ®Ò»ÊÇ£¬ÔÚ SQL Server ÍⲿµÄ·Ç¹ØϵÊý¾ÝÖдæÔÚÖظ´µÄ PK£¬ÔÚµ¼ÈëÕâЩÊý¾ÝʱûÓÐÇ¿ÖÆÖ´ÐÐ PK ΨһÐÔ¡£³öÏÖÖظ´Ö÷¼üµÄÁíÒ»ÖÖÇéÐÎÀ´×ÔÊý¾Ý¿âÉè¼Æ´íÎó£¬ÈçûÓжÔÿÕűíÇ¿ÖÆÖ´ÐÐʵÌåÍêÕûÐÔ¡£
¡¡¡¡Í¨³£ÔÚ³¢ÊÔ´´½¨Î¨Ò»Ë÷Òýʱ»á·¢ÏÖÖظ´µÄ PK£¬ÒòΪÈç¹ûÕÒµ½Öظ´µÄ¼ü£¬Î¨Ò»Ë÷ÒýµÄ´´½¨¼´»áÖÐÖ¹£¬²¢ÇÒ½«ÏÔʾÒÔÏÂÏûÏ¢£º
¡¡¡¡Msg 1505, Level 16, State 1 Create unique index aborted on duplicate key.
¡¡¡¡Èç¹ûʹÓõÄÊÇ SQL Server 2000 »ò SQL Server 2005£¬Ôò»áÊÕµ½ÒÔÏ´íÎóÏûÏ¢£º
¡¡¡¡Msg 1505, Level 16, State 1 CREATE UNIQUE INDEX terminated because a duplicate key was found for object name '%.*ls' and index name '%.*ls'.The duplicate key value is %ls.
¡¡¡¡±¾ÎÄÌÖÂÛÈçºÎ²éÕÒºÍɾ³ý±íÖÐÖظ´µÄÖ÷¼ü¡£µ«ÊÇ£¬ÄúÓ¦¸Ã×Ðϸ¼ì²é³öÏÖÖظ´¼üµÄ½ø³ÌÒÔ±ÜÃâÖظ´³öÏÖ¡£
¡¡¡¡¸ü¶àÐÅÏ¢
¡¡¡¡ÔÚ¸ÃʾÀýÖУ¬ÎÒÃǽ«Ê¹ÓÃÏÂ±í£¬Ëü¾ßÓÐÖظ´µÄ PK Öµ¡£ÔڸñíÖУ¬Ö÷¼üÊÇÁ½ÁÐ(col1¡¢col2)¡£ÎÒÃÇÎÞ·¨´´½¨Î¨Ò»Ë÷Òý»òÖ÷¼üÔ¼Êø£¬ÒòΪÕâÁ½ÐоßÓÐÖظ´µÄ PK¡£¸Ã¹ý³ÌÑÝʾÈçºÎʶ±ðºÍɾ³ýÖظ´µÄÖ÷¼ü¡£
¡¡¡¡create table t1(col1 int, col2 int, col3 char(50))
¡¡¡¡insert into t1 values (1, 1, 'data value one')
¡¡¡¡insert into t1 values (1, 1, 'data value one')
¡¡¡¡insert into t1 values (1, 2, 'data value two')
¡¡¡¡µÚÒ»²½ÊÇʶ±ðÄÄЩÐоßÓÐÖظ´µÄÖ÷¼üÖµ£º
¡¡¡¡SELECT col1, col2, count(*)
¡¡¡¡from t1
¡¡¡¡GROUP BY col1, col2
¡¡¡¡HAVING count(*) > 1
¡¡¡¡Õ⽫Ϊ±íÖеÄÿ×éÖظ´µÄ PK Öµ·µ»ØÒ»ÐС£´Ë½á¹ûÖеÄ×îºóÒ»ÁÐÊÇÌض¨ PK ÖµµÄÖظ´Êý¡£
¡¡¡¡col1c


Ïà¹ØÎĵµ£º

Oracle ѧϰ£ºPL/SQLÑ­Ðò½¥½øÈ«Ãæѧϰ½Ì³Ì

 ¿Î³ÌËÄ ×麯Êý
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢Á˽â¿ÉÓõÄ×麯Êý
¡¡¡¡2¡¢ËµÃ÷ÿ¸ö×麯ÊýµÄʹÓ÷½·¨
¡¡¡¡3¡¢Ê¹ÓÃGROUP BY
¡¡¡¡4¡¢Í¨¹ýHAVINGÀ´ÏÞÖÆ·µ»Ø×é
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡Ò»¡¢¸ÅÄ
¡¡¡¡×麯ÊýÊÇÖ¸°´Ã¿×é·µ»Ø½á¹ûµÄº¯Êý¡£
¡¡¡¡×麯Êý¿ÉÒÔ³öÏÖÔÚSELECTºÍHAVING ×Ö¶ÎÖС£
¡¡¡¡GROUP ......

Oracle ѧϰ£ºPL/SQLÑ­Ðò½¥½øÈ«Ãæѧϰ½Ì³Ì

 ¿Î³ÌÊ®Èý ʹÓÃ×éºÏÊý¾ÝÀàÐÍ* Óαê²Ù×ÝÊý¾Ý
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢´´½¨Óû§×Ô¶¨ÒåµÄPLSQL¼Ç¼
¡¡¡¡2¡¢ÀûÓÃ%ROWTYPEÊôÐÔÀ´´´½¨¼Ç¼
¡¡¡¡3¡¢´´½¨PLSQL±í
¡¡¡¡4¡¢ÃèÊö¼Ç¼¡¢±í¡¢¼Ç¼µÄ±íÖ®¼äµÄÇø±ð
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡Ò»¡¢ºÏ³ÉÊý¾ÝÀàÐÍ
¡¡¡¡1¡¢ÀàÐÍ·ÖΪPLSQL¼Ç¼ºÍPLSQL±í
¡¡¡¡2¡ ......

Oracle ѧϰ£ºPL/SQLÑ­Ðò½¥½øÈ«Ãæѧϰ½Ì³Ì

 ×îºóÒ»¿Î Òì³£´¦Àí±¾ÕÂÖص㣺
¡¡¡¡
¡¡¡¡1¡¢¶¨ÒåPLSQLÒì³£
¡¡¡¡2¡¢Áоٲ»Í¬µÄÒì³£´¦Àí·½·¨
¡¡¡¡3¡¢²¶»ñ·ÇÔ¤ÆڵĴíÎó
¡¡¡¡4¡¢ÃèÊöÒì³£µÄÓ°Ïì
¡¡¡¡5¡¢¶¨ÖÆÒì³£µÄ·µ»ØÐÅÏ¢¡¡¡¡Ò»¡¢PLSQLÒì³£´¦Àí
¡¡¡¡Òì³£ÊÇÓÉORACLE´íÎó»òÏÔʽµÄÅ׳öÒ»¸ö´íÎó²úÉúµÄ¡£
¡¡¡¡ÈçºÎ´¦Àí£º
¡¡¡¡ÓÃÒ»¸ö´¦Àí³ÌÐòÀ´²¶»ñËü£»
¡¡¡¡½«Ëü´«µÝ ......

sqlÍâ¼üÔ¼ÊøNO ACTION,CASCADE,SET NULL,SET DEFAULT

 NO ACTION
Ö¸¶¨Èç¹ûÊÔͼɾ³ý/ÐÞ¸ÄijһÐУ¬¶ø¸ÃÐеļü±»ÆäËû±íµÄÏÖÓÐÐÐÖеÄÍâ¼üËùÒýÓã¬Ôò²úÉú´íÎ󲢻عö DELETE/UPDATEÓï¾ä¡£
CASCADE¡¢SET NULL ºÍ SET DEFAULT
ÔÊÐíͨ¹ýɾ³ý»ò¸üмüÖµÀ´Ó°ÏìÖ¸¶¨¾ßÓÐÍâ¼ü¹ØϵµÄ±í£¬ÕâЩÍâ¼ü¹Øϵ¿É×·Ëݵ½ÔÚÆäÖнøÐÐÐÞ¸ÄµÄ±í¡£Èç¹ûΪĿ±ê±íÒ²¶¨ÒåÁ˼¶ÁªÒýÓòÙ×÷£¬ÄÇôָ¶¨µÄ¼¶Áª²Ù ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ