SQL FOREIGN KEY
一个表中的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相关推荐
- SQL FOREIGN KEY 约束
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. 让我们通过一个例子来解释外键.请看下面两个表: "Persons" 表: "Orders& ...
- SQL学习之foreign key约束
目录 参考源 SQL foreign key 约束 FOREIGN KEY 作用 create table 时的 SQL foreign key 约束 MySQL SQL Server / Oracl ...
- SQL语法之FOREIGN KEY 约束
SQL学习 学习SQL语法 SQL语法 SQL学习 FOREIGN KEY 约束 SQL FOREIGN KEY Constraint on CREATE TABLE SQL Server / Ora ...
- mysql key constraint_MySQL/InnoDB的外键约束(Foreign Key Constraint)
MySQL/InnoDB的外键约束(Foreign Key Constraint) SQL外键约束 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. FOREIGN KE ...
- 【若依(ruoyi)】quartz.sql 脚本重新导入时,遇到因foreign key外键无法删除错误#1217
目录 前言 问题原因 解决办法1:先删除外键 解决办法2:禁用外键约束 前言 若依(ruoyi) 4.2 quartz.sql 脚本重新导入,遇到错误#1217 问题原因 在某些表上存在外键.重新导入 ...
- SQL SERVER | 错误处理 INSERT 语句与 FOREIGN KEY SAME TABLE 约束“FK__Course__Cpno__276EDEB3“冲突。(补充)
项目平台: SQL SERVER 2019 问题描述: 插入语句时受约束,报错: 消息 547,级别 16,状态 0,第 42 行 INSERT 语句与 FOREIGN KEY SAME TABLE ...
- mysql 导入数据 1215,导入sql出现:#1215 – Cannot add foreign key constraint错误的解决办法...
今天在数据库后台导入一个mysql文件时,出现了:1215 – Cannot add foreign key constraint这样的错误提示. 百度了一下,网友们给出的解决办法一般是这样的: 外键 ...
- sql学习-Constraints(约束)(primary key、 foreign key、check、default)
CONSTRAINTS 约束 介绍 SQL 约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表时规定(通过 CREATE TABLE 语句): 或者在表创建 ...
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c 别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...
最新文章
- 微信小程序的省市区三级地址mysql_微信小程序 实现三级联动-省市区
- 获取init程序的调试信息和uevent的调试信息需要打开的两个宏
- 透过源码看Session
- 【数据结构-栈和队列】详解栈和队列(代码+STL+原理)
- elasticsearch httpclient认证机制
- 下拉菜单实现树状结构_树形图:复杂层次结构的数据可视化
- aesmiyao php_PHP使用AES,ECB模式块和PKCS5Padding生成对称密钥
- 【原创】指针和下标的10条对比
- SpringMVC自学日志03(SpringMVC注解)
- 擦地机器人测评_iRobot擦地机器人测评:一机在手,脏污不再有!
- 用jquery替换dojo中的ajax
- win7发现不了无线网络_Win7笔记本怎么设置wifi热点 Win7笔记本设置wifi热点方法【详解】...
- java建立英文停用词表_HanLP-停用词表的使用示例
- 操作系统第四版习题答案大全
- 百度飞桨PaddlePaddle 顶会论文复现课程 阅读心得 BigGAN
- 易语言新手入门教程第十三课 - 制作QQ自动登录器
- 留学生Research Proposal 怎么写?
- 设置border线条小于1px
- 问题-ListView 使用的时候,已经遇到的问题;
- 文献调研——存算一体的一些基础知识
热门文章
- 关于机器人寻路追踪巡逻的一些
- 怎么制作效果好的秋梨膏?
- STM32F103VET6实现呼吸灯
- win10_公司企业网络连接使用说明
- [PaperNotes]2017.Algorand: Scaling byzantine agreements for cryptocurrencies
- 面向过程与面向对象编程实例
- 实现ls -l 与进程
- C++程序设计(实践)_西安铁道技师学院实训室探秘计算机程序设计(软件工程方向)专业实训室...
- UGNX12.0 软件安装教程ug12.0安装步骤
- Java访问OrientDB数据库实战教程