我有两张桌子。 城市与调查。
City
id int(11) primary key,
Name varchar(255)
Survey
Id int(11) primary key,
CityId ref City.id,
其他栏目......
例如, 伦敦在City表中,id为23。 我在cityId 23的调查表中进行了调查。
当我从city表中删除London时,我不想从调查表中删除行。 我还需要用城市名称报告调查详情。但是,伦敦被删除我是城市表。
我怎么能解决这个问题?
答案 0 :(得分:0)
你"解决"通过在Survey
中创建外键引用来解决此问题:
alter table survey add constraint fk_survey_cityid
foreign key (cityid) references city(id);
然后,当您尝试从city
表中删除伦敦时,删除将失败。另一个表引用了id。
答案 1 :(得分:0)
如果您不想从调查表中删除行
例如,添加默认城市
示例:id为0的城市NC
在轮询中,您将默认值设置为CityId值0;
UPDATE Survey SET CityId=0 WHERE CityId = CityneedDelete ;
和
DELETE FROM City where CityId = CityneedDelete