1 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
MySQL中,InnoDB引擎類型的表支持了外鍵約束,MyISAM類型暫時(shí)不支持外鍵。
建立外鍵關(guān)系的兩個(gè)表的列必須是數(shù)據(jù)類型相似,也就是可以相互轉(zhuǎn)換類型的列,比如int和tinyint可以,而int和char則不可以;此外,聯(lián)合主鍵在MSSQL中建立外鍵會(huì)出現(xiàn)一些情況,不建議使用。
外鍵的好處:可以使得兩張表關(guān)聯(lián),保證數(shù)據(jù)的一致性和實(shí)現(xiàn)一些級(jí)聯(lián)操作。
外鍵的定義語法:
1234 | [ 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 時(shí)使用,如果不指定CONSTRAINT symbol,MYSQL會(huì)自動(dòng)生成一個(gè)名字。指定約束名稱可以方便維護(hù),刪除約束可以用
1 | ALTER TABLE tbl_name DROP FOREIGN KEY symbol |
語句快速刪掉。ON DELETE、ON UPDATE表示事件觸發(fā)限制,可設(shè)參數(shù):RESTRICT(限制外表中的外鍵改動(dòng))CASCADE(跟隨外鍵改動(dòng))SET NULL(設(shè)空值)SET DEFAULT(設(shè)默認(rèn)值)NO ACTION(無動(dòng)作,默認(rèn)的)
添加回答
舉報(bào)