所以,我在 Centos 6 上使用 mysql 服务器,然后就没事了,我将代码转移到 Centos 7 服务器上。
我的表中有一个约束,我过去常常在 MySQL 服务器中默认插入空值。我猜这在 MariaDB 中不会发生。
插入数据时出现以下错误。
错误 1452 (23000):无法添加或更新子行:外键约束失败 (dbName
.tableName
, CONSTRAINT constraintName
外键 (columnName
) 引用 externalTableName
(externalTableColumnName
))
如有任何帮助,我们将不胜感激。
谢谢
更新1:
包含要引用的 key 的表:
CREATE TABLE `users` (
`uid` int(25) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`uid`)
);
CREATE TABLE `abc_xyz` (
`isUser` int(25) DEFAULT NULL,
`last_modified_user` int(25) DEFAULT NULL,
KEY `abc_xyz_is_user` (`isUser`),
KEY `abc_xyz_last_modified_user` (`last_modified_user`),
CONSTRAINT `abc_xyz_is_user` FOREIGN KEY (`isUser`) REFERENCES `users` (`uid`),
CONSTRAINT `abc_xyz_last_modified_user`
FOREIGN KEY (`last_modified_user`) REFERENCES `users` (`uid`)
);
最佳答案
如果columnName
可为 NULL,则您不会插入 NULL 值。我真的怀疑在可为 NULL 的列中插入 NULL 会导致外键失败。检查正在调用的查询(如果您使用 ORM 等)。
关于mysql - mariadb外键插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067184/