我有一个表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/