MySQL資料庫外來鍵使用

2021-08-28 03:01:23 字數 1474 閱讀 9519

--5.1 向goods表裡插入任意一條資料

insert into goods (name,cate_id,brand_id,price) values('聯想固態硬碟',10,10,1200);

--5.2 新增外來鍵約束 foreign key

-- alter table goods add foreign key (brand_id) references goods_brands(id);

alter table goods add foreign key(cate_id) references goods_cates(id);

alter table goods add foreign key(brand_id) references goods_brands(id);

-- 失敗原因 ,因為'聯想固態硬碟'這行的資料不滿足外來鍵約束 delete

-- delete from goods where name="聯想固態硬碟";

delete from goods where id=22;

--5.3 建立表的同時設定外來鍵 (注意 goods_cates 和 goods_brands 兩個表必須事先存在)

create table goods(

id int primary key auto_increment not null,

name varchar(40) default '',

price decimal(5,2),

cate_id int unsigned,

brand_id int unsigned,

is_show bit default 1,

is_saleoff bit default 0,

foreign key(cate_id) references goods_cates(id),

foreign key(brand_id) references goods_brands(id)

);--5.4 如何取消外來鍵約束

alter table goods drop foreign key goods_ibfk_1;

alter table goods drop foreign key goods_ibfk_2;

-- 需要先獲取外來鍵約束名稱,該名稱系統會自動生成,可以通過檢視表建立語句來獲取名稱

show create table goods ;

-- 獲取名稱之後就可以根據名稱來刪除外來鍵約束

--alter table goods drop foreign key goods_ibfk_1;

--5.5 涉及外來鍵的面試

在目前主流的資料庫設計中,越來越少使用到外來鍵約束

原因: 會極大的降低表更新的效率

如何替代 '通過外來鍵約束實現資料有效性驗證'

解決思想: 可在資料錄入時驗證(表示層,ui層),或者在業務層面(python**)去驗證,而不要資料庫層面去驗證。

MySQL 資料庫外來鍵

如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主表,表b稱為從表。外來鍵是用來實現參照完整性的,不同的外來鍵約束方式將可以使兩張表緊密的結合起來,特別是修改或者刪除的級聯操作將使得日常的維護工作更加輕鬆。這裡以mysql為例,總結一下3種外來鍵約束方式的區別和聯絡。這裡以使用者...

MySQL資料庫外來鍵

設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...

mysql資料庫教程 外來鍵 MySQL資料庫外來鍵

設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...