删除条目而不删除相关条目mysql innoDB

删除条目而不删除相关条目mysql innoDB,mysql,innodb,relation,Mysql,Innodb,Relation,我有一个数据库,用户有不同的项目。一个用户可以有多个项目,但一个项目只能有一个用户 如果我要删除一个用户而不删除他的项目,我会遇到一个问题。MySql不会让我删除用户,除非我先删除项目 是否有办法删除用户并保留项目?如果包含用户和项目的表之间存在外键关系,则可以在“为项目创建表”表中使用此关系 FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE SET NULL, 不幸的是,您需要删除并再次创建表,因为您不能使用alter对

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

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


是否有办法删除用户并保留项目?

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

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

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

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


这种“删除”通常是通过软删除来完成的:在表中添加一个“非活动”列,当您想将某一行标记为已删除时,将其设置为“是”或非零或类似的值。

您必须更改外键约束才能做到这一点。这是使用外键的原因之一,因为您不会破坏外键

您可以向users表中添加一个不同的列,例如“active”,并将该列的值设置为“n”(默认值为“y”),而不是删除该用户的记录。然后,您可以检索任何项目的信息,并且在应用程序的其他部分中,只能与活动列设置为“y”的用户一起工作。我认为您可以将表更改为此。支持删除和添加索引。