首页博客网络编程
基于表的外键链接到基于其他表的主键。
FOREIGN KEY 约束可防止可能破坏表之间链接的操作。
FOREIGN KEY 约束不允许将无效数据插入到外键列中。
这是数据库中“Developers”表中的演示示例:
编号 | 名字 | 城市 | 国家 |
---|---|---|---|
1 | 汤姆·库尔库蒂斯 | 纽约 | 美国 |
2 | 安娜·费尔南德斯 | 伦敦 | 英国 |
3 | 安东尼奥·靛蓝 | 巴黎 | 法国 |
4 | 阿拉夫·凯林(Aarav Kaelin) | 德里 | 印度 |
5 | 安德鲁·图莫塔 | 迈阿密 | 美国 |
这是数据库中“Orders”表中的演示示例:
Order_ID | Client_ID | Developer_ID | 日期 |
---|---|---|---|
1509 | 9 | 1 | 2017-08-18 |
1510 | 20 | 5 | 2016-12-19 |
1511 | 15 | 5 | 2017-01-25 |
“Orders”表格中的“DeveloperID”列链接到“Developers”表格中的“DeveloperID”列。
“Developers”表中的“DeveloperID”列被解释为“Developers”表中的PRIMARY KEY。
“Orders”表中的“DeveloperID”列被解释为“Orders”表中的FOREIGN KEY。
当 “Orders” 表已存在时,使用以下 SQL 语法在 “DeveloperID” 列上构建 FOREIGN KEY:
MySQL的:
例复制
CREATE TABLE Orders ( OrderID int NOT NULL, DeveloperID int, PRIMARY KEY (OrderID), FOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID) );
SQL Server/MS Access/Oracle:
例复制
CREATE TABLE Orders ( OrderID int NOT NULL PRIMARY KEY, DeveloperID int FOREIGN KEY REFERENCES Developers(DeveloperID) );
使用以下 SQL 语法允许命名 FOREIGN KEY 约束,并对要定义的各种列的 FOREIGN KEY 约束:
MySQL / SQL Server / MS Access / Oracle:
例复制
CREATE TABLE Orders ( OrderID int NOT NULL, DeveloperID int, PRIMARY KEY (OrderID), CONSTRAINT FK_DeveloperOrder FOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID) );
当 “Orders” 表已存在时,使用以下 SQL 语法在 “DeveloperID” 列上构建 FOREIGN KEY 约束:
MySQL / SQL Server / MS Access / Oracle:
例复制
ALTER TABLE OrdersADD FOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID);
使用以下 SQL 语法允许命名 FOREIGN KEY 约束,并对要定义的各种列的 FOREIGN KEY 约束:
MySQL / SQL Server / MS Access / Oracle:
例复制
ALTER TABLE OrdersADD CONSTRAINT FK_DeveloperOrderFOREIGN KEY (DeveloperID) REFERENCES Developers(DeveloperID);
使用此 SQL 语法删除 FOREIGN KEY 约束。
MySQL的:
例复制
ALTER TABLE OrdersDROP FOREIGN KEY FK_DeveloperOrder;
SQL Server/MS Access/Oracle:
例复制
ALTER TABLE OrdersDROP CONSTRAINT FK_DeveloperOrder;
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位