删除行时出现问题

时间:2011-06-16 19:17:32

标签: mysql sql database-design constraints

当我做类似的事情时:

  

DELETE FROM users_has_pais WHERE users_id = 151

我收到以下错误消息:

  

SQLSTATE [23000]:完整性约束违规:1451无法删除或更新父行:外键约束失败(giseleusers_has_pais,CONSTRAINT users_has_pais_ibfk_3 FOREIGN KEY({{ 1}})参考users_idusers)ON更新没有动作更新无动作)

我不确定问题是什么,虽然我猜它与ON DELETE NO ACTION有关。我不知道我应该改变什么,虽然...作为参考我粘贴了我的表结构的转储:

id

编辑: pastie of the constraint information

2 个答案:

答案 0 :(得分:3)

您正在尝试删除另一个表中约束引用的记录。因此,您需要执行以下操作之一:

  • 如果在您的逻辑中有意义,则将约束更改为级联删除(或其他约束规则)
  • 警告用户问题,并建议他先删除其他对象
  • 让您的应用程序删除相关行,然后删除您要删除的行(根据@RacerX注释)。

<强>更新

在查看了包含更多详细信息的数据结构后,我怀疑您的约束可能会向后定义。你能发布约束定义吗?

答案 1 :(得分:0)

我的SQL知识并不完全是顶级的,但看起来你正在删除被引用为外键的东西。