国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

SQL FOREIGN KEY 外鍵限制學(xué)習(xí)筆記

2019-11-08 20:34:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

轉(zhuǎn)載自這里 簡(jiǎn)介: 外鍵是一個(gè) (或多個(gè)) 指向其它資料表中主鍵的欄位,它限制欄位值只能來(lái)自另一個(gè)資料表的主鍵欄位,用來(lái)確定資料的參考完整性 (Referential Integrity)。

ps:如果想在 MySQL 資料庫(kù)中使用外鍵限制,必需讓資料表使用 InnoDB 儲(chǔ)存引擎。

讓我們簡(jiǎn)單了解一下什麼是外鍵: 這是一個(gè)客戶資料表 customers 這里寫(xiě)圖片描述 而這是客戶訂單的資料表 orders 這里寫(xiě)圖片描述 在這裡我們會(huì)想有一個(gè)限制,就是在客戶訂單資料表中的客戶,都一定要在 customers 資料表中存在。所以我們需要在 orders 資料表中設(shè)定一個(gè)外鍵,再將此外鍵指向 customers 資料表中的主鍵,以確定所有在 orders 資料表中的客戶都存在於 customers 資料表中,才不會(huì)有任何幽靈訂單的出現(xiàn)!

FOREIGN KEY Constraint

假設(shè)我們要將 customer 資料表中的 C_Id 欄位設(shè)為外鍵:

在建立資料表時(shí) 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 後面接著的即是此外鍵的名稱,另一個(gè)重點(diǎn)是記得 customers 資料表中需將 C_Id 設(shè)為主鍵。

更改資料表限制 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;
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洛川县| 延安市| 体育| 临西县| 武陟县| 和静县| 北京市| 旌德县| 潮州市| 阿克苏市| 攀枝花市| 长治市| 伊金霍洛旗| 新和县| 武功县| 锦屏县| 黔西县| 临海市| 射阳县| 始兴县| 宁海县| 大丰市| 镇原县| 湖州市| 新蔡县| 香格里拉县| 梓潼县| 兰坪| 临泉县| 延安市| 无棣县| 大兴区| 太原市| 莫力| 阿拉善左旗| 互助| 武强县| 迁西县| 图片| 错那县| 天全县|