INSERT语句与FOREIGN KEY约束冲突.冲突发生在数据库中

pro*_*ems 4 sql sql-server foreign-keys

我现在已经有这个问题了几个小时了.在SQL Server,我运行此查询:

INSERT INTO USERS_AVATAR(userId, avatId) VALUES ('1', '213');
INSERT INTO USERS_AVATAR(userId, avatId) VALUES ('2', '312');
Run Code Online (Sandbox Code Playgroud)

但是消息显示:

消息547,级别16,状态0,行1
INSERT语句与FOREIGN KEY约束"FKUSERS_AVAT731248"冲突.冲突发生在数据库"gk314",表"gk314.USERS",列'userId'中.

消息547,级别16,状态0,行2
INSERT语句与FOREIGN KEY约束"FKUSERS_AVAT731248"冲突.冲突发生在数据库"gk314",表"gk314.USERS",列'userId'中.

请帮忙!

Rus*_*uss 11

之前插入的用户id 1和2成USERS_AVATAR,你必须首先将它们插入到表USERS.这就是FOREIGN KEY约束所要求的.


Ada*_*m V 1

外键约束是 SQL 表达“此表期望数据存在于其他表中”的方式。它允许您引用其他表,而数据不必存在两次或保持同步。

在本例中,有一个用于用户数据的表 ( USERS) 和一个用于头像数据的表 ( AVATARS),并且该USERS_AVATAR表将两者链接在一起。您需要将用户添加到用户表中,然后将头像添加到头像表中,然后可以将两者链接在一起。它看起来像这样:

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)
Run Code Online (Sandbox Code Playgroud)

原答案:

这意味着有一个表 ,gk314.USERS但没有与您尝试添加的userId表相匹配的。检查表并添加用户1和2,然后您应该可以添加到表中。userIdUSERS_AVATARUSERSuserIdUSERS_AVATAR