mysql - mariadb外键插入错误

标签 mysql mariadb

所以,我在 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/

相关文章:

php - Joomla 使用 Nginx 和 PHP-FPM 加载 10 秒以上

javascript - 如何使用jquery在数据库中创建表

mysql - 一段时间后重置列值

mysql - 如何处理 mysqldump 创建的巨大行长

mySQL - 在单个表中选择日期范围重叠

mysql - Django Google App Engine 服务器错误 500

php - 使用 MariaDB 的 SphinxSE 基本语法问题

mysql - 在 MariaDB 中创建桥表

MySQL 查询在本地成功运行,但在 SERVER 上给出 DATE_FORMAT 错误

mysql - 选择列具有多个唯一列值的行