mysql - 找不到父 key 解决方法

标签 mysql sql

我有一个表USER

CREATE TABLE "USER"
  (
    USER_ID    INTEGER NOT NULL ,
    CREATED_BY INTEGER NOT NULL ,
  ) ;
ALTER TABLE "USER" ADD CONSTRAINT USER_PK PRIMARY KEY ( USER_ID ) ;

对于这个特定的数据库,我需要 CREATED_BY 表作为同一表中 USER_ID 的外键。

ALTER TABLE "USER" ADD CONSTRAINT USER_USER_FK FOREIGN KEY ( CREATED_BY ) REFERENCES "USER" ( USER_ID ) ;

由于这个限制,我的插入语句在第一个用户上总是会失败。

有解决这个问题的最佳实践吗?我可以禁用第一个添加的用户的约束,然后重新启用该约束吗?

最佳答案

您可以修改创建表脚本,以便它接受created_by 列的空值。然后你可以插入你的第一条记录(有一个 user_id 和一个 null 的created_by)。从逻辑上讲,该用户表中的某个人必须是根记录(换句话说,管理员或第一个用户,其记录不是由其他人创建的)。

关于mysql - 找不到父 key 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39086116/

相关文章:

php - 如何将 MYSQL 链接标识符作为字符串传递给 mysql_query?

mysql - Eloquent 查询不能正常工作

sql - 如何按IN子句的顺序选择mysql行

javascript - 尝试使用 Express 将数据插入 MySql 数据库时出错

mysql - Java 中的 SQL;处理 SELECT 和 GROUP BY 时出错

php - 将数千条相关记录导入到 Rails 应用程序中?

今天的 mySQL 行不会持续 24 小时

sql - 在SQLite中限制结果

sql - 错误 : GEOSIntersects: TopologyException: side location conflict

更新XAMPP后MySQL无法启动