設定外來鍵
外來鍵及功能:成績表(參照表也叫子表)中的學號來自學生表(被參照表也叫父表),成績表中的課程號來自課程表;當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作:restrict(限制) cascade(級聯)set null(設定為空) no action(無動作)
簡單點說就是外來鍵所在的表是子表,外來鍵所參照的表是父表。
a. restrict:當子表有相關記錄時,禁止父表刪除或更新此字段的值(預設);
b. cascade(級聯):當父表記錄刪除或更新該字段的值時,子表跟著被刪除或更新;
使用命令建立外來鍵alter table cj add constraint cs_xh foreign key (學號) references xs(學號) on delete restrict on update cascade, add constraint cj_kch foreign key (課程號) references kc(課程號) on delete cascade on update cascada;
建立時設定外來鍵create table cj(學號 char(6) not null,課程號 char(3) not null,成績 decimal(4,1),primary key(學號,課程號),constraint cj_xh foreign key(學號) references xs(學號) on delete restrict on update cascade,constraint cj_kch foreign key (課程號) references kc(課程號) on delete cascade on update restrict);停止外來鍵約束:set foreign_key_checks=0/off啟用外來鍵約束:set foreign_key_checks=1/on刪除外來鍵: alter table 表名drop foreign key 外鍵名;例:alter table cj drop foreign key cj_xh;檢視外來鍵是否開啟:show variables like 「%foreign%」;
MySQL 資料庫外來鍵
如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主表,表b稱為從表。外來鍵是用來實現參照完整性的,不同的外來鍵約束方式將可以使兩張表緊密的結合起來,特別是修改或者刪除的級聯操作將使得日常的維護工作更加輕鬆。這裡以mysql為例,總結一下3種外來鍵約束方式的區別和聯絡。這裡以使用者...
MySQL資料庫外來鍵
設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...
MySql資料庫外來鍵關聯
設定外來鍵關聯是可以設定在刪除時和在更新時的操作,其中有三個比較重要的。1 層疊 級聯 cache 2 設為null set null 3 無動作 no action 1 層疊,當主表刪除一條記錄,那麼從表對應的引用了被刪除的記錄的主鍵作為外來鍵的記錄將會級聯刪除。更新時候也一樣。2 設為null,...