資料庫MySQL之如何使用外來鍵約束?
阿新 • • 發佈:2018-12-22
資料庫MySQL之如何使用外來鍵約束?
文章目錄
1. 外來鍵約束的使用要求:
- 父表和子表必須使用相同的儲存引擎,不能使用臨時表
- 資料儲存引擎必須為INNODB型別
- 外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或者是否有符號位必須相同,字元的長度則可以不同
- 外來鍵列和參照列必須建立索引。如果外來鍵列不存在索引的話,MySQL則自動建立索引
外來鍵列建立在子表中,參照列建立在父表中
2. 測試:
在 MY.ini 檔案中編輯預設的儲存引擎
default-storage-engine=INNODB;
顯示建立表的語句
SHOW CREATE TABLE table_name;
查看錶是否有索引
SHOW INDEXS FROM table_name;
以網格查看錶是否有索引
SHOW INDEXS FROM table_name\G;
Eg:
CREATE TABLE table_name1(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL
)
CREATE TABLE table_name2(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES table_name1(id) /* 外來鍵 pid 參照 table_name1中的 id 欄位 */