在做求职网站时遇到如下问题:
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;
若有别的方法,欢迎指教!