restrict : 只要本**裡面有指向主表的資料, 在主表裡面就無法刪除相關記錄。
一般來說,就選restrict最安全,當然也根據具體的業務而言了.cascade很cool,但是資料譁的一下就沒了.
cascade : 如果在foreign key 所指向的那個表裡面刪除一條記錄,那麼在此表裡面的跟那個key一樣的所有記錄都會一同刪掉。
為book表新增外來鍵:
明確指定外來鍵的名稱:alter table book addconstraint fk_bookforeign key(pubid) references pub_com(id) on delete restrict on update restrict;
不指定外來鍵的名稱,mysql會自動為你建立乙個外來鍵名稱:alter table book add foreign key(pubid) references pub_com(id) on delete restrict on update restrict;
使用:show create table book;命令可檢視
使用:desc book;可檢視表結構
##########
只是有個別的地方不夠完善。
如於到下面的一種情況。
-- -- 限制匯出的表
-- --
-- 限制表 `room_staus`
-- alter table `room_staus` add constraint `fk_rooms_roomtype` foreign key ( `hotel_id` , `room_id` ) references `room_type` ( `hotel_id` , `room_id` ) on delete cascade on update cascade ;
為mysql資料表新增外來鍵
restrict 只要本 裡面有指向主表的資料,在主表裡面就無法刪除相關記錄。一般來說,就選restrict最安全,當然也根據具體的業務而言了.cascade很cool,但是資料譁的一下就沒了.cascade 如果在foreign key 所指向的那個表裡面刪除一條記錄,那麼在此表裡面的跟那個key...
Mysql 為表新增外來鍵約束
sql語句格式 新增外來鍵約束 alter table 從表 add constraint 外來鍵 形如 fk 從表 主表 foreign key 從表外來鍵字段 references 主表 主鍵字段 如果mysql報錯 error code 1215.cannot add foreign key ...
MYSQL資料表建立外來鍵
mysql建立關聯表可以理解為是兩個表之間有個外來鍵關係,但這兩個表必須滿足三個條件 1.兩個表必須是innodb資料引擎 2.使用在外鍵關係的域必須為索引型 index 3.使用在外鍵關係的域必須與資料型別相似 例如 1 建立s user表 create table s user u id int...