我这个问题已经持续了几个小时了。在SQL Server
中,我运行了此查询:
INSERT INTO USERS_AVATAR(userId, avatId) VALUES ('1', '213');
INSERT INTO USERS_AVATAR(userId, avatId) VALUES ('2', '312');
但是消息显示出来了:
Msg 547,Level 16,State 0,Line 1
INSERT语句与FOREIGN KEY约束冲突" FKUSERS_AVAT731248"。冲突发生在数据库" gk314",table" gk314.USERS",column' userId'。Msg 547,Level 16,State 0,Line 2
INSERT语句与FOREIGN KEY约束冲突" FKUSERS_AVAT731248"。冲突发生在数据库" gk314",table" gk314.USERS",column' userId'。
请帮忙!
答案 0 :(得分:11)
在将userIds 1
和2
插入USERS_AVATAR
之前,您必须先将它们插入表USERS
。这就是FOREIGN KEY约束所要求的。
答案 1 :(得分:1)
外键约束是SQL的说法"该表期望数据存在于其他表中#34;。它允许您引用其他表,而数据不必存在两次或保持同步。
在这种情况下,有一个用户数据表(USERS
)和一个用于头像数据的表(AVATARS
),USERS_AVATAR
表将两者链接在一起。您需要将用户添加到users表,然后将头像添加到头像表,然后您可以将两者链接在一起。它看起来像这样:
INSERT INTO USERS (userId, email, password, status) VALUES (1, 'gk314@hotmail.com',' gk314', 'strong')
INSERT INTO AVATARS (avatId, name, ...) VALUES (1, 'Avatar1', ...)
INSERT INTO USERS_AVATAR (userId, avatId) VALUES (1, 1)
原始答案:
这意味着有一个表格gk314.USERS
没有userId
与您尝试添加到userId
的{{1}}相匹配{1}}。检查USERS_AVATAR
表并添加USERS
1和2的用户,然后您就可以添加到userId
表。