mysql¼¶ÁªÉ¾³ý Mysql µÄ Cascade Restrict
½ñÌìÓöµ½Êý¾Ý¿âµÄÒ»¸öÎÊÌ⣬¾ÍÊÇÿµ±´ÓÖ÷±íÖÐɾ³ýÒ»¸öÖ÷¼üidʱ£¬ÓÉÓÚÓëËûÏà¹ØÁªµÄ±íÖÐÓÐÏà¹ØµÄ×Ö¶ÎÊý¾Ý£¬ËùÒÔÎÞ·¨É¾³ý¡£²éÁËÒ»´ó¶Ñ×ÊÁÏ£¬·¢ÏÖÎÒ½¨±í¹ØÁªÓõÄÊÇon Restrict.¿ÉÄÜÎÊÌâ¾Í³öÔÚÕâÀï°É¡£
Íâ¼üÔ¼Êø¶Ô×Ó±íµÄº¬Òå:
Èç¹ûÔÚ¸¸±íÖÐÕÒ²»µ½ºòÑ¡¼ü,Ôò²»ÔÊÐíÔÚ×Ó±íÉϽøÐÐinsert/update
Íâ¼üÔ¼Êø¶Ô¸¸±íµÄº¬Òå:
ÔÚ¸¸±íÉϽøÐÐupdate/deleteÒÔ¸üлòɾ³ýÔÚ×Ó±íÖÐÓÐÒ»Ìõ»ò¶àÌõ¶ÔӦƥÅäÐеĺòÑ¡¼üʱ,¸¸±íµÄÐÐΪȡ¾öÓÚ£ºÔÚ¶¨Òå×Ó±íµÄÍâ¼üʱָ¶¨µÄon update/on delete×Ó¾ä, InnoDBÖ§³Ö£µÖÖ·½Ê½, ·ÖÁÐÈçÏÂ
. cascade·½Ê½
ÔÚ¸¸±íÉÏupdate/delete¼Ç¼ʱ£¬Í¬²½update/deleteµô×Ó±íµÄÆ¥Åä¼Ç¼
On delete cascade´Ómysql3.23.50¿ªÊ¼¿ÉÓÃ; on update cascade´Ómysql4.0.8¿ªÊ¼¿ÉÓÃ
. set null·½Ê½
ÔÚ¸¸±íÉÏupdate/delete¼Ç¼ʱ£¬½«×Ó±íÉÏÆ¥Åä¼Ç¼µÄÁÐÉèΪnull
ҪעÒâ×Ó±íµÄÍâ¼üÁв»ÄÜΪnot null
On delete set null´Ómysql3.23.50¿ªÊ¼¿ÉÓÃ; on update set null´Ómysql4.0.8¿ªÊ¼¿ÉÓÃ
. No action·½Ê½
Èç¹û×Ó±íÖÐÓÐÆ¥ÅäµÄ¼Ç¼,Ôò²»ÔÊÐí¶Ô¸¸±í¶ÔÓ¦ºòÑ¡¼ü½øÐÐupdate/delete²Ù×÷
Õâ¸öÊÇANSI SQL-92±ê×¼,´Ómysql4.0.8¿ªÊ¼Ö§³Ö
. Restrict·½Ê½
ͬno action, ¶¼ÊÇÁ¢¼´¼ì²éÍâ¼üÔ¼Êø
. Set default·½Ê½
½âÎöÆ÷ÈÏʶÕâ¸öaction,µ«Innodb²»ÄÜʶ±ð£¬²»ÖªµÀÊÇʲôÒâ˼£®£®£®
×¢Ò⣺trigger²»»áÊÜÍâ¼ücascadeÐÐΪµÄÓ°Ïì,¼´²»»á½â·¢trigger
ÔÚmysqlÖУ¬Óë£Ó£Ñ£Ì±ê×¼ÏàÎ¥±³µÄÈýµã
1. Èç¹ûÔÚ¸¸±íÖÐÓжà¸ökeyÖµÏàͬ£¬ÄÇôÔÚ½øÐÐÍâ¼ücheckʱ,»áµ±³ÉÓÐÏàͬkeyÖµµÄÆäËûÐв»´æÔÚ; ±ÈÈçµ±¶¨ÒåÁËÒ»¸örestrictÐÐΪÍâ¼üʱ,Ò»¸ö×Ó±íÐжÔÓ¦µ½¶à¸ö¸¸±íÐÐ(¾ßÓÐÏàͬkeyÖµ), Innodb²»ÔÊÐíɾ³ý¸¸±íÉϵÄËùÓÐÕâЩÐÐ
2. ¸¸×Ó±íÊÇͬһ¸ö±í,×ÔÎÒ²ÎÕÕʱ²»ÔÊÐíÖ¸¶¨on update cascade, on update set null
´Ómysql4.0.13¿ªÊ¼£¬ÔÊÐíͬһ¸ö±íÉϵÄon delete set null
´Ómysql4.0.21¿ªÊ¼£¬ÔÊÐíͬһ¸ö±íÉϵÄon delete cascade
µ«¼¶Áª²ã´Î²»
Ïà¹ØÎĵµ£º
·Ï»°²»ËµÁË£¬Ö±½Ó½øÈëÖ÷Ì⣬C# ODBC·ÃÎÊMySQLÊý¾Ý¿â£º
1.°²×°Microsoft ODBC.net£ºÎÒ°²×°µÄÊÇmysql-connector-odbc-3.51.22-win32.msi
2.°²×°MDAC 2.7»òÕ߸ü¸ß°æ±¾£ºÎÒ°²×°µÄÊÇmdac_typ.exe 2.7¼òÌåÖÐÎİæ
3.°²×°MySQLµÄODBCÇý¶¯³ÌÐò£ºÎÒ°²×°µÄÊÇ odbc_net.msi
4.¹ÜÀí¹¤¾ß -> Êý¾ÝÔ´ODBC –>ÅäÖÃDSN… ......
¶Ô±ÈcharºÍvarcharËæ±ãÔÚgoogle»ò°Ù¶ÈÖÐËÑһϵõ½µÄ½áÂÛ´ó¸Å¶¼ÊÇ"char¶¨³¤,varchar²»¶¨³¤,charÒª±ÈvarcharÕ¼Óøü¶àµÄ¿Õ¼ä,ÓÉÓÚ¶¨³¤charµÄЧÂʸßÓÚvarchar,char×î´ó255,varchar×î´ó65536"¸ü¸ß¼¶Ò»µãµÄÊý¾ÝÊÇ"charÔÚ´æÈëºÍÈ¡³öµÄʱºò,»á×Ô¶¯°ÑĩβµÄ¿Õ¸ñÈ¥µô,varchar»á¶îÍâµÄ¶àÓÃ1-2¸ö×Ö½ÚÀ´´æ·Å×Ö·û³¤¶È,ÁÐÖÐÓÐÒ»¸övarchar» ......
phpºÍjavaͨÓÃsqlÓï¾ä·¨
SELECT max(id) from table
¸Ã·½·¨ÔÚ¶àÏ̵߳ÈÇé¿öÏ¿ÉÄÜ»áÔì³É²»ÕýÈ·¡£
javaÈýÖÖ·½·¨
1¡¢¸ù¾ÝpsµÄgetGeneratedKeys
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //ºìÉ«Êǹؼü
ps.executeUpdate(); //Ö´Ðкó
ResultSet rs = ps.getGeneratedKeys ......
1 ÄÚ´æ±íµÄ±í»ú¹¹»¹ÊÇÔÚÊý¾Ý¿âÖеģ¬Ö»ÊÇÊý¾Ýʱ·ÅÔÚÄÚ´æÖеġ£
2 ÄÚ´æ±íÖв»¿ÉÒÔʹÓÃTEXTºÍBLOBÀàÐ͵Ä×ֶΡ£
3 ÄÚ´æ±í¿ÉÒÔͨ¹ýmax_heap_table_size = 2048MÀ´¼Ó´óʹÓõÄÄÚ´æ¡£
1 ÁÙʱ±íµÄ±í»ú¹¹ºÍÊý¾Ý¶¼ÊÇ·ÅÔÚÄÚ´æÖеÄ
¾ßÌå¼ûÏ£º
ÄÚ´æ±íʹÓùþϣɢÁÐË÷Òý°ÑÊý¾Ý±£´æÔÚÄÚ´æÖУ¬Òò´Ë¾ßÓм«¿ìµÄËÙ¶È£¬Êʺϻº´æÖÐСÐÍÊý¾Ý¿ ......
¼ÙÉèÎÒÃÇʹÓÃmysql_real_queryÖ´ÐÐÁËÒ»ÌõsqlÓï¾äÖ®ºó£¬·µ»ØÖµÎª·Ç0Öµ£¬´ó¼Ò¶¼ÖªµÀÕâÊÇÕâÌõÓï¾äÖ´Ðгö´í£¬µ«ÊÇÎÒÃÇÏë
ÁË½âµØ¸üÏêϸµãµÄ»°£¬¾¿¾¹ÊÇʲôÔÒòµ¼ÖÂÁËÕâ¸ö´íÎóÄØ£¿Õâʱºò¾ÍµÃÓÃÉÏmysqlÌṩµÄÁíÍâÒ»¸öAPI£ºmysql_errno¡£
mysql_errno»áÌṩ×î½üÒ»´Îµ÷ÓõÄC API³ö´íµÄÐÅÏ¢£¨²»¼ûµÃÿ¸öAPI¶¼»á¶ÔÕâ¸öerrno½øÐÐÉèÖ ......