MySQLµÄÍâ¼üºÍ²ÎÕÕÍêÕûÐÔ
Ò»¡¢²ÎÕÕÍêÕûÐÔ(Referential integrity)ºÍÍâ¼ü(foreign key)
²ÎÕÕÍêÕûÐÔ(Referential integrity)ÊÇÓÃÓÚÔ¼¶¨Á½¸ö¹ØÏµÖ®¼äµÄÁªÏµ£¬ÀíÂÛÉϹ涨£ºÈôMÊǹØÏµSÖеÄÒ»ÊôÐÔ×飬ÇÒMÊÇÁíÒ»¹ØÏµZµÄÖ÷¹Ø¼ü×Ö£¬Ôò³ÆMΪ¹ØÏµS¶ÔÓ¦¹ØÏµZµÄÍâ¹Ø¼ü×Ö¡£ÈôMÊǹØÏµSµÄÍâ¹Ø¼ü×Ö£¬ÔòSÖÐÿһ¸öÔª×éÔÚMÉϵÄÖµ±ØÐëÊÇ¿ÕÖµ»òÊǶÔÓ¦¹ØÏµZÖÐij¸öÔª×éµÄÖ÷¹Ø¼ü×ÖÖµ¡£²ÎÕÕÍêÕûÐÔÊÇÊý¾Ý¿âÉè¼ÆÖÐÒ»¸öÖØÒªµÄ¸ÅÄî¡£ÔÚϵͳ²»Í¬µÄ±íÖУ¬µ±Êý¾Ý¿âËùÓвÎÕպϷ¨»ò·ÇºÏ·¨¹ØÁªÊ±¶¼»áÉæ¼°µ½²ÎÕÕÍêÕûÐÔ¡£µ±²ÎÕÕÍêÕûÐÔ´æÔÚʱ£¬ÈκÎÓë²»´æÔڵļǼ²úÉú¹ØÁª½«±äµÃÎÞЧ£¬Óɴ˿ɷÀÖ¹Óû§³öÏÖ¸÷ÖÖ´íÎ󣬴ӶøÌṩ¸üΪ׼ȷºÍʵÓõÄÊý¾Ý¿â¡£
Íâ¼ü(foreign key):Èç¹û±íAµÄÖ÷¹Ø¼ü×ÖÊDZíBÖеÄ×ֶΣ¬Ôò¸Ã×ֶγÆÎª±íBµÄÍâ¼ü£¬±íA³ÆÎªÖ÷±í£¬±íB³ÆÎª´Ó±í¡£Íâ¼üÊÇÓÃÀ´ÊµÏÖ²ÎÕÕÍêÕûÐԵ쬲»Í¬µÄÍâ¼üÔ¼Êø·½Ê½½«¿ÉÒÔʹÁ½Õűí½ôÃܵĽáºÏÆðÀ´£¬ÌرðÊÇÐ޸ĻòÕßɾ³ýµÄ¼¶Áª²Ù×÷½«Ê¹µÃÈÕ³£µÄά»¤¹¤×÷¸ü¼ÓÇáËÉ¡£
¶þ¡¢MySQLÖеÄÍâ¼üʹÓÃÌõ¼þ
MySQLÒÔÍù²¢²»Ö§³ÖÍâ¼ü£¬ÔÒòÊÇÕâÖÖÖ§³Ö»á½µµÍËٶȺÍÐÔÄÜ¡£
ÔÚMySQL 3.23.44°æ±¾ºó£¬InnoDBÒýÇæÀàÐ͵ıíÖ§³ÖÁËÍâ¼üÔ¼Êø£¬µ«ÊÇĬÈÏÒýÇæMyISAMĿǰ»¹²»Ö§³ÖÍâ¼ü£¬Òò´ËʹÓÃʱÐèҪעÒ⽨Á¢Êý¾Ý¿â±íʱѡÔñInnoDB×÷ΪÊý¾Ý¿âÒýÇæ¡£
Íâ¼üµÄʹÓÃÌõ¼þ£º
1.Á½¸ö±í±ØÐëÊÇInnoDB±í£¬MyISAM±íÔÝʱ²»Ö§³ÖÍâ¼ü£¨¾Ý˵ÒÔºóµÄ°æ±¾ÓпÉÄÜÖ§³Ö£¬Ä¿Ç°ÎÒʹÓõÄÊÇ5.1.36»¹Ã»ÓÐÖ§³Ö£©£»
2.Íâ¼üÁбØÐ뽨Á¢ÁËË÷Òý£¬MySQL 4.1.2ÒÔºóµÄ°æ±¾ÔÚ½¨Á¢Íâ¼üʱ»á×Ô¶¯´´½¨Ë÷Òý£¬µ«Èç¹ûÔÚ½ÏÔçµÄ°æ±¾ÔòÐèÒªÏÔʾ½¨Á¢£»
3.Íâ¼ü¹ØÏµµÄÁ½¸ö±íµÄÁбØÐëÊÇÊý¾ÝÀàÐÍÏàËÆ£¬Ò²¾ÍÊÇ¿ÉÒÔÏ໥ת»»ÀàÐ͵ÄÁУ¬±ÈÈçintºÍtinyint¿ÉÒÔ£¬¶øintºÍcharÔò²»¿ÉÒÔ£»
Èý¡¢Íâ¼üµÄÓï·¨
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
¸ÃÓï·¨¿ÉÒÔÔÚ CREATE TABLE ºÍ ALTER TABLE ʱʹÓã¬Èç¹û²»Ö¸¶¨CONSTRAINT symbol£¬MYSQL»á×Ô¶¯Éú³ÉÒ»¸öÃû×Ö¡£
ON DELETE¡¢ON UPDATE±íʾʼþ´¥·¢ÏÞÖÆ£¬¿ÉÉè²ÎÊý£º
RESTRICT£¨ÏÞÖÆÍâ±íÖеÄÍâ¼ü¸Ä¶¯£©
CASCADE£¨¸úËæÍâ¼ü¸Ä¶¯£©
SET NULL£¨Éè¿ÕÖµ£©
SET DEFAULT£¨ÉèĬÈÏÖµ£©
NO ACTION£¨ÎÞ¶¯×÷£¬Ä¬Èϵģ©
¾ßÌåʹÓÃʾÀý¿ÉÒÔ²
Ïà¹ØÎĵµ£º
MySQL ×Ö·û´®½ØÈ¡º¯Êý£ºleft(), right(), substring(), substring_index()¡£»¹ÓÐ mid(), substr()¡£ÆäÖУ¬mid(), substr() µÈ¼ÛÓÚ substring() º¯Êý£¬substring() µÄ¹¦Äܷdz£Ç¿´óºÍÁé»î¡£
1. ×Ö·û´®½ØÈ¡£ºleft(str, length)
mysql> select left('sqlstudy.com', 3);
+-------------------------+
| left('sq ......
Author: Ivan@mysqlab.net/Ì·¿¡Çà ×ªÔØÇë×¢Ã÷À´Ô´URIÁ´½Ó:
http://www.mysqlab.net/blog/2009/04/mysql-54µÄÐÂÌØÐÔ½âÎö/
MySQL 5.4 Ö®ËùÒÔÃüÃûΪ5.4£¬¶ø²»ÊÇ5.2 ÊÇÒòΪ֮ǰµÄ5.2°æ±¾±»ÃüÃûΪ6.0ÁË£¨Õâ¸öÓ¦¸ÃÊÇÉÌÒµÉϵÄÔÒò£¬¾ÍÏñjava1.6±»ÃüÃûΪ6.0£©¡£ÏÖÔÚµÄ5.4 preview release ÊÇÔÚµ±Ç°MySQL5.1µÄ»ù´¡ÉÏ£¬¶Ô Innodb ½ø ......
ÓкܶàÅóÓÑËäÈ»°²×°ºÃÁËmysqlµ«È´²»ÖªÈçºÎʹÓÃËü¡£ÔÚÕâÆªÎÄÕÂÖÐÎÒÃǾʹÓÁ¬½ÓMYSQL¡¢ÐÞ¸ÄÃÜÂë¡¢Ôö¼ÓÓû§µÈ·½ÃæÀ´Ñ§Ï°Ò»Ð©MYSQLµÄ³£ÓÃÃüÁî¡£
Ò»¡¢Á¬½ÓMYSQL¡£
¸ñʽ£º mysql -hÖ÷»úµØÖ· -uÓû§Ãû £pÓû§ÃÜÂë
1¡¢Àý1£ºÁ¬½Óµ½±¾»úÉϵÄMYSQL¡£
Ê×ÏÈÔÚ´ò¿ªDOS´°¿Ú£¬È»ºó½øÈëĿ¼ mysqlbin£¬ÔÙ¼üÈëÃüÁîmysql -uroot -p£¬»Ø³µ ......
mysql³ö´íÁË,ÒÔǰÍùÍù¿¿²Â.ÓÐÁËÕâÕűí,Ò»²é¾Í³öÀ´ÁË.·½±ã²»ÉÙ.ÌØ¹²ÏíÓÚÖÚ
1005£º´´½¨±íʧ°Ü
1006£º´´½¨Êý¾Ý¿âʧ°Ü
1007£ºÊý¾Ý¿âÒÑ´æÔÚ£¬´´½¨Êý¾Ý¿âʧ°Ü
1008£ºÊý¾Ý¿â²»´æÔÚ£¬É¾³ýÊý¾Ý¿âʧ°Ü
1009£º²»ÄÜɾ³ýÊý¾Ý¿âÎļþµ¼ÖÂɾ³ýÊý¾Ý¿âʧ°Ü
1010£º²»ÄÜɾ³ýÊý¾ÝĿ¼µ¼ÖÂɾ³ýÊý¾Ý¿âʧ ......