SQL FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

让我们通过一个例子来解释外键。请看下面两个表:

"Persons" 表:

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

"Orders" 表:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1

请注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。

"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

SQL FOREIGN KEY Constraint on CREATE TABLE

下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

SQL FOREIGN KEY Constraint on ALTER TABLE

如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

撤销 FOREIGN KEY 约束

如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

转载于:https://www.cnblogs.com/ChineseIntelligentLanguage/p/6431048.html

CHIL-SQL-FOREIGN KEY 约束相关推荐

  1. SQL FOREIGN KEY 约束

    一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. 让我们通过一个例子来解释外键.请看下面两个表: "Persons" 表: "Orders& ...

  2. SQL学习之foreign key约束

    目录 参考源 SQL foreign key 约束 FOREIGN KEY 作用 create table 时的 SQL foreign key 约束 MySQL SQL Server / Oracl ...

  3. SQL语法之FOREIGN KEY 约束

    SQL学习 学习SQL语法 SQL语法 SQL学习 FOREIGN KEY 约束 SQL FOREIGN KEY Constraint on CREATE TABLE SQL Server / Ora ...

  4. SQL FOREIGN KEY

    一个表中的FOREIGH KEY 指向另一个表中的PRIMARY KEY. 通过实例来解释外键.请看下面两个表: 注意: ·"Orders"表中的"P_Id"列 ...

  5. INSERT 语句与 FOREIGN KEY 约束冲突

    接上篇"ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突.该冲突发生于数据库 '',表 '', column ''"的问题, 将目标库中的表数 ...

  6. ALTER TABLE 语句与 FOREIGN KEY 约束“FK_Booking_Hotel“冲突。

    错误:SQL Server 创建数据库表的外键时出错 ALTER TABLE 语句与 FOREIGN KEY 约束"FK_Booking_Hotel"冲突.该冲突发生于数据库&qu ...

  7. 【数据库】ALTER TABLE 语句与 FOREIGN KEY 约束““冲突。该冲突发生于数据库““,表““, column ‘‘。

    摘要:微信搜索[三桥君] 本篇讲述的是在已经创建好表且有数据的情况下,增加 FOREIGN KEY 约束的报错问题 一.问题 当我在一张Student表中增加它的classNo外键,外键参照Class ...

  8. SQLServer之修改FOREIGN KEY约束

    原文:SQLServer之修改FOREIGN KEY约束 使用SSMS数据库管理工具修改FOREIGN KEY约束 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修 ...

  9. 新闻发布系统——INSERT 语句与 FOREIGN KEY 约束XXX冲突。该冲突发生于数据库XXX,表XXX, column 'XXX。

    敲"添加新闻"功能模块的时候,如下: 填写了相应的信息后报错:INSERT 语句与 FOREIGN KEY 约束"XXX"冲突.该冲突发生于数据库"X ...

  10. SQL PRIMARY KEY 约束

    SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...

最新文章

  1. 谷歌公布十大恶意网站 均曾攻击上万网站
  2. (传送门)android绘图canvas.clipRect()方法的作用
  3. 《黑马程序员》认识OC的第一个程序(Objective-c)
  4. 【机器学习实战】意大利Covid-19病毒感染数学模型及预测
  5. 光模块该如何使用,光模块的使用方法介绍!
  6. CCNA笔记之第二十节:RIP协议(大实验4)
  7. centos7-docker-网络配置
  8. 混迹职场,你的领导也是你的资源
  9. python和c 的区别-Python与C语言的区别
  10. BZOJ 5277 IQ题orz
  11. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_02 泛型_3_定义和使用含有泛型的类...
  12. aba问题mysql_Mysql中select + update并发更新问题
  13. WAP PUSH的SMS PDU解析
  14. 指数分布的样本和是充分统计量
  15. 服务器虚拟内存设置在什么盘,虚拟内存设置在哪个磁盘呢
  16. 电脑垃圾太多?这几个清理电脑的软件来看看吗?
  17. 「HDU 2298」Toxophily
  18. PayPal 全攻略
  19. 支持向量机学习笔记(1)
  20. C Primer Plus课后习题

热门文章

  1. php 字符ascii转中文,PHP ASCII码与字符串相互转换的方法
  2. yiic.php,PHP框架YII札记之1
  3. css 中引入第三方字体
  4. python字典类型可迭代_核心数据类型--字典
  5. linux 快速启动程序,centos7快速启动应用程序教程
  6. 计算机开题报告参考文献,开题报告中参考文献.docx
  7. linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...
  8. 在html中显示word,如何在浏览器网页中显示word文件内容
  9. php遍历文件夹下文件内容_php实现的遍历文件夹下所有文件,编辑删除
  10. php读取西门子plc_AB PLC和西门子PLC之间需要交换数据