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

通过实例来解释外键。请看下面两个表:

注意:

·"Orders"表中的"P_Id"列指向"Persons"表中的"P_Id"列。

·"Persons"表中的"P_Id"列是"Persons"表中的PRIMARY KEY。

·"Orders"表中的"P_Id"列是"Orders"表中的FOREIGN KEY。

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

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

CREATE TABLE时的SQL FOREIGN KEY 约束

在"Orders"表创建时在"P_Id"列上创建FOREIGN KEY 约束:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server/ Oracle /MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

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

MySQL /SQL Server /Oracle /MS Access:

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

ALTER TABLE 时的 SQLFOREIGN KEY 约束

当"Orders"表已被创建时,如需在"P_Id"列创建FOREIGN KEY 约束,请使用下面的SQL:

MySQL /SQL Server /Oracle /MS Access

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

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

MySQL /SQL Server /Oracle /MS Access:

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

撤销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.yuque.com/docs/share/79273585-3f48-4505-b43b-edb59ba84662

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. mysql key constraint_MySQL/InnoDB的外键约束(Foreign Key Constraint)

    MySQL/InnoDB的外键约束(Foreign Key Constraint) SQL外键约束 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. FOREIGN KE ...

  5. 【若依(ruoyi)】quartz.sql 脚本重新导入时,遇到因foreign key外键无法删除错误#1217

    目录 前言 问题原因 解决办法1:先删除外键 解决办法2:禁用外键约束 前言 若依(ruoyi) 4.2 quartz.sql 脚本重新导入,遇到错误#1217 问题原因 在某些表上存在外键.重新导入 ...

  6. SQL SERVER | 错误处理 INSERT 语句与 FOREIGN KEY SAME TABLE 约束“FK__Course__Cpno__276EDEB3“冲突。(补充)

    项目平台: SQL SERVER 2019 问题描述: 插入语句时受约束,报错: 消息 547,级别 16,状态 0,第 42 行 INSERT 语句与 FOREIGN KEY SAME TABLE ...

  7. mysql 导入数据 1215,导入sql出现:#1215 – Cannot add foreign key constraint错误的解决办法...

    今天在数据库后台导入一个mysql文件时,出现了:1215 – Cannot add foreign key constraint这样的错误提示. 百度了一下,网友们给出的解决办法一般是这样的: 外键 ...

  8. sql学习-Constraints(约束)(primary key、 foreign key、check、default)

    CONSTRAINTS 约束 介绍 SQL 约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表时规定(通过 CREATE TABLE 语句): 或者在表创建 ...

  9. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)

    注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c   别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...

最新文章

  1. 微信小程序的省市区三级地址mysql_微信小程序 实现三级联动-省市区
  2. 获取init程序的调试信息和uevent的调试信息需要打开的两个宏
  3. 透过源码看Session
  4. 【数据结构-栈和队列】详解栈和队列(代码+STL+原理)
  5. elasticsearch httpclient认证机制
  6. 下拉菜单实现树状结构_树形图:复杂层次结构的数据可视化
  7. aesmiyao php_PHP使用AES,ECB模式块和PKCS5Padding生成对称密钥
  8. 【原创】指针和下标的10条对比
  9. SpringMVC自学日志03(SpringMVC注解)
  10. 擦地机器人测评_iRobot擦地机器人测评:一机在手,脏污不再有!
  11. 用jquery替换dojo中的ajax
  12. win7发现不了无线网络_Win7笔记本怎么设置wifi热点 Win7笔记本设置wifi热点方法【详解】...
  13. java建立英文停用词表_HanLP-停用词表的使用示例
  14. 操作系统第四版习题答案大全
  15. 百度飞桨PaddlePaddle 顶会论文复现课程 阅读心得 BigGAN
  16. 易语言新手入门教程第十三课 - 制作QQ自动登录器
  17. 留学生Research Proposal 怎么写?
  18. 设置border线条小于1px
  19. 问题-ListView 使用的时候,已经遇到的问题;
  20. 文献调研——存算一体的一些基础知识

热门文章

  1. 关于机器人寻路追踪巡逻的一些
  2. 怎么制作效果好的秋梨膏?
  3. STM32F103VET6实现呼吸灯
  4. win10_公司企业网络连接使用说明
  5. [PaperNotes]2017.Algorand: Scaling byzantine agreements for cryptocurrencies
  6. 面向过程与面向对象编程实例
  7. 实现ls -l 与进程
  8. C++程序设计(实践)_西安铁道技师学院实训室探秘计算机程序设计(软件工程方向)专业实训室...
  9. UGNX12.0 软件安装教程ug12.0安装步骤
  10. Java访问OrientDB数据库实战教程