为mysql数据表添加外键(二)

RESTRICT : 只要本表格里面有指向主表的数据, 在主表里面就无法删除相关记录。

一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是数据哗的一下就没了.

CASCADE : 如果在foreign key 所指向的那个表里面删除一条记录,那么在此表里面的跟那个key一样的所有记录都会一同删掉。

为book表添加外键:

明确指定外键的名称:alter table book add constraint FK_BOOK foreign 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 ;


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

系统商研社

一切付出都是明智的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值