CHIL-SQL-FOREIGN KEY 约束
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 约束相关推荐
- 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 ...
- SQL FOREIGN KEY
一个表中的FOREIGH KEY 指向另一个表中的PRIMARY KEY. 通过实例来解释外键.请看下面两个表: 注意: ·"Orders"表中的"P_Id"列 ...
- INSERT 语句与 FOREIGN KEY 约束冲突
接上篇"ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突.该冲突发生于数据库 '',表 '', column ''"的问题, 将目标库中的表数 ...
- ALTER TABLE 语句与 FOREIGN KEY 约束“FK_Booking_Hotel“冲突。
错误:SQL Server 创建数据库表的外键时出错 ALTER TABLE 语句与 FOREIGN KEY 约束"FK_Booking_Hotel"冲突.该冲突发生于数据库&qu ...
- 【数据库】ALTER TABLE 语句与 FOREIGN KEY 约束““冲突。该冲突发生于数据库““,表““, column ‘‘。
摘要:微信搜索[三桥君] 本篇讲述的是在已经创建好表且有数据的情况下,增加 FOREIGN KEY 约束的报错问题 一.问题 当我在一张Student表中增加它的classNo外键,外键参照Class ...
- SQLServer之修改FOREIGN KEY约束
原文:SQLServer之修改FOREIGN KEY约束 使用SSMS数据库管理工具修改FOREIGN KEY约束 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修 ...
- 新闻发布系统——INSERT 语句与 FOREIGN KEY 约束XXX冲突。该冲突发生于数据库XXX,表XXX, column 'XXX。
敲"添加新闻"功能模块的时候,如下: 填写了相应的信息后报错:INSERT 语句与 FOREIGN KEY 约束"XXX"冲突.该冲突发生于数据库"X ...
- SQL PRIMARY KEY 约束
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...
最新文章
- 谷歌公布十大恶意网站 均曾攻击上万网站
- (传送门)android绘图canvas.clipRect()方法的作用
- 《黑马程序员》认识OC的第一个程序(Objective-c)
- 【机器学习实战】意大利Covid-19病毒感染数学模型及预测
- 光模块该如何使用,光模块的使用方法介绍!
- CCNA笔记之第二十节:RIP协议(大实验4)
- centos7-docker-网络配置
- 混迹职场,你的领导也是你的资源
- python和c 的区别-Python与C语言的区别
- BZOJ 5277 IQ题orz
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_02 泛型_3_定义和使用含有泛型的类...
- aba问题mysql_Mysql中select + update并发更新问题
- WAP PUSH的SMS PDU解析
- 指数分布的样本和是充分统计量
- 服务器虚拟内存设置在什么盘,虚拟内存设置在哪个磁盘呢
- 电脑垃圾太多?这几个清理电脑的软件来看看吗?
- 「HDU 2298」Toxophily
- PayPal 全攻略
- 支持向量机学习笔记(1)
- C Primer Plus课后习题
热门文章
- php 字符ascii转中文,PHP ASCII码与字符串相互转换的方法
- yiic.php,PHP框架YII札记之1
- css 中引入第三方字体
- python字典类型可迭代_核心数据类型--字典
- linux 快速启动程序,centos7快速启动应用程序教程
- 计算机开题报告参考文献,开题报告中参考文献.docx
- linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...
- 在html中显示word,如何在浏览器网页中显示word文件内容
- php遍历文件夹下文件内容_php实现的遍历文件夹下所有文件,编辑删除
- php读取西门子plc_AB PLC和西门子PLC之间需要交换数据