【发布时间】:2012-07-26 02:17:55
【问题描述】:
错误:无法添加或更新子行:外键约束失败
以下是产生错误的代码:
ALTER TABLE 'catalog_eav_attribute'
ADD CONSTRAINT 'FK_CATALOG_EAV_ATTRIBUTE_ID'
FOREIGN KEY ('attribute_id') REFERENCES 'eav_attribute' ('attribute_id)'
ON DELETE CASCADE ON UPDATE CASCADE;
我上传了 SQL 的结构,它没有问题,但是当我插入数据时,我得到了上述相关错误。我在某处读过,我预测它是因为糟糕的数据。错误的其他可能性是什么?任何建议或解决方案都会很棒。
【问题讨论】:
-
这不是有效的 MySQL。标识符用反引号引用,而不是单引号。这甚至不会运行。
-
你在插入什么?
attribute_id字段是否引用了eav_attribute表中的某些内容? -
@Michael,我在 MySQL 中成功使用了单引号和反引号。
-
@SableFoste 在 ANSI_QUOTES 模式下,您可以对标识符进行双引号,但不能对它们进行单引号。单引号用于字符串文字。 dev.mysql.com/doc/refman/5.0/en/identifiers.html
-
@Michael:哇,很高兴知道,但有点吓人......我可能有很多代码要回去更新,以防万一......谢谢你的信息。
标签: mysql database database-design foreign-key-relationship