Mysql数据库数据维护

时间:2017-03-24 15:24:35

标签: mysql database

我有两张桌子。 城市与调查。

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时,我不想从调查表中删除行。 我还需要用城市名称报告调查详情。但是,伦敦被删除我是城市表。

我怎么能解决这个问题?

2 个答案:

答案 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