轉(zhuǎn)帖|其它|編輯:郝浩|2012-10-12 11:55:33.000|閱讀 3677 次
概述:使用Navicat在MySQL數(shù)據(jù)庫(kù)平臺(tái)建立外鍵關(guān)聯(lián)具體辦法
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
要在Mysql數(shù)據(jù)庫(kù)平臺(tái)建立外鍵關(guān)聯(lián),必須滿(mǎn)足以下幾個(gè)條件:
1. 兩個(gè)表必須為 InnoDB 類(lèi)型。
2. 外鍵和被引用鍵必須是索引中的第一列,InnoDB 不會(huì)自動(dòng)為外鍵和被引用鍵建立索引,必須明確創(chuàng)建
它們。
3. 外鍵與對(duì)應(yīng)的被引用鍵在 InnoDB 內(nèi)必須 有相似的內(nèi)部數(shù)據(jù)類(lèi)型,以便他們不需要一個(gè)類(lèi)型轉(zhuǎn)換就可
以進(jìn)行比較。 整型字段的長(zhǎng)度與有符號(hào)類(lèi)型必須一致。 字符型則不需要一致。如果指定了一個(gè)SET
NULL 動(dòng)作,那你必須要確定 子表中的對(duì)應(yīng)字段沒(méi)有定義為 NOT NULL
示例:
CREATE TABLE parent(id INT NOT NULL,
PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) TYPE=INNODB;
可以通過(guò)下面的方式在在后來(lái)添加外鍵約束:
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol] FOREIGN KEY [id] (...)
REFERENCES table_name (index_col_name, ...)
[ON DELETE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]
還可以使用 SHOW CREATE TABLE 'TABLENAME'來(lái)查看創(chuàng)建語(yǔ)句(如果使用了工具)
navicat中使用步驟:
定位于外鍵所在表->設(shè)計(jì)表,首先建立索引
欄位名中填入外鍵,必須是第一列,INNODB所規(guī)定
接著創(chuàng)建外鍵
cascade表示級(jí)聯(lián)更新刪除
保存就行了
如果有遇can't create....erron(150), 檢查一下數(shù)值型屬性有沒(méi)有定義為unsigned。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:CSDN