0

我有一个数据库,用户有不同的项目。一个用户可以有多个项目,但一个项目只能有一个用户。

如果我要删除用户而不删除他的项目,我会遇到问题。除非我先删除项目,否则 MySql 不会让我删除用户。

有没有办法可以删除用户并保留项目?

4

3 回答 3

1

如果包含用户和项目的表之间有外键关系,则可以在为项目表创建表中使用它

 FOREIGN KEY (user_id)
 REFERENCES users(user_id)
 ON DELETE SET NULL,

不幸的是,您需要删除并再次创建表,因为您不能使用 alter 对现有表进行此更改

于 2011-11-22T22:32:16.283 回答
1

您已使用外键约束设置架构,因此项目表行坚持拥有用户的存在。

这种“删除”通常通过软删除来完成:通过向表中添加“非活动”列,并将其设置为“是”或非零或类似的东西,当您要将特定行标记为已删除时。

于 2011-11-22T22:32:18.177 回答
0

您必须更改外键约束才能做到这一点。这是拥有外键的原因之一,即您不会破坏它们。

于 2011-11-22T22:32:33.033 回答