SQL FOREIGN KEY 外键限制学习笔记
来源:互联网 发布:淘宝卖家如何实名认证 编辑:程序博客网 时间:2024/04/30 05:23
转载自这里
简介:
外鍵是一個 (或多個) 指向其它資料表中主鍵的欄位,它限制欄位值只能來自另一個資料表的主鍵欄位,用來確定資料的參考完整性 (Referential Integrity)。
ps:如果想在 MySQL 資料庫中使用外鍵限制,必需讓資料表使用 InnoDB 儲存引擎。
讓我們簡單了解一下什麼是外鍵:
這是一個客戶資料表 customers
而這是客戶訂單的資料表 orders
在這裡我們會想有一個限制,就是在客戶訂單資料表中的客戶,都一定要在 customers 資料表中存在。所以我們需要在 orders 資料表中設定一個外鍵,再將此外鍵指向 customers 資料表中的主鍵,以確定所有在 orders 資料表中的客戶都存在於 customers 資料表中,才不會有任何幽靈訂單的出現!
FOREIGN KEY Constraint
假設我們要將 customer 資料表中的 C_Id 欄位設為外鍵:
在建立資料表時 CREATE TABLE
CREATE TABLE orders ( O_id INT NOT NULL, Order_No INT NOT NULL, C_id INT, PRIMARY KEY (O_id), FOREIGN KRY (Cid) REFERENCES customers(C_id));
替外鍵命名與多欄位的外鍵:
CREATE TABLE orders (O_id INT NOT NULL PRIMARY KEY,Order_No INT NOT NULL,C_id INT,CONSTRAINT fk_Customer_id FOREIGN KEY (C_id) REFERENCES customers (C_id));
我們限制 C_Id 為外鍵,CONSTRAINT 後面接著的即是此外鍵的名稱,另一個重點是記得 customers 資料表中需將 C_Id 設為主鍵。
更改資料表限制 ALTER TABLE
ALTER TABLE ordersAdd FOREIGN KEY (C_id) REFERENCES customers(C_id);
替外鍵命名與多欄位的外鍵:
ALTER TABLE ordersADD CONSTRAINT fk_Customer_id FOREIGN KEY (C_id) REFERENCES customers (C_id);
移除資料表限制 ALTER TABLE
MySQLALTER TABLE orders DROP FOREIGN KEY fk_Customer_Id;
0 0
- SQL FOREIGN KEY 外键限制学习笔记
- SQL Server 2005 建立外键约束(foreign key)
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY Constraint
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- SQL FOREIGN KEY
- SQL primary key, foreign key
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
- SQL - Create Foreign Key Relationships
- SQL FOREIGN KEY(约束)
- SQLite定义外键foreign key
- MySQL 外键约束(FOREIGN KEY)
- mysql创建外键(Foreign Key)方法
- Android6.0编译程序时,getSlotFromBufferLocked: unknown buffer: 0xac0f8650
- Linux防火墙开启与关闭
- ARM:g-sensor数据手册、函数原型atoi&itoa、读取加速度的基础
- java设计模式之代理模式
- 定时关机
- SQL FOREIGN KEY 外键限制学习笔记
- APP实用开发—RxJava 和 Retrofit 结合使用
- java 开发pc小工具 ,打包可运行的 jar
- Android服务(Service)
- gevent调度流程解析
- 制图 | AutoCAD 基本设置和使用
- ubuntu12.04建立交叉编译环境开发openwrt
- 菱形输出 Java
- [机器学习][3]--口袋算法与线性回归