数据库联级更新 on update cascade和联级删除 on delete cascade

       在做求职网站时遇到如下问题:

       sql server数据库中Company表的主键为Cname,Company_information中的主键为Cname,且Company_information中Cname的外键为Company中的Cname。当我要更新Company中的Cname,系统显示报错,因为Company_information中的Cname不能自动更改。

       解决办法:1、可以在建表时添加 on update cascade on delete cascade

                               create table Company

                               (Cname char(40)primary key,Password char(12)not null);

                               create table Company

                               (Cname char(40)primary key,City char(4)not null,Address char(60)not null,foreign key(Cname)references Company(Cname) on update cascade on delete cascade);

                           2、建表时忽略该情况,表建成之后进行修改。

                               修改信息时提示错误:FK__Job__Cname__6FE99F9F的影响。

                               2、1 先将外键删除,再添加新的外键,打开数据库,鼠标对着Company_information点击右键,选择设计。对Cname点击右键,选择关系,将FK__Job__Cname__6FE99F9F进行删除。

                                       数据库中写入:

                                       alter table Company_information
                                       add constraint FK__Job__Cname__6FE99F9F foreign key(Cname)references Company(Cname) on                                           update cascade on delete cascade;

                               2、2编码实现删除外键,再添加新的外键

                                      删除:alter table Company_information drop constraint FK__Job__Cname__6FE99F9F;

                                      添加:alter table Company_information
                                          add constraint FK__Job__Cname__6FE99F9F foreign key(Cname)references Company(Cname) on                                           update cascade on delete cascade;

若有别的方法,欢迎指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值