鉴于以下两个表:
CREATE TABLE Members(
email VARCHAR(20) PRIMARY KEY,
password VARCHAR(20),
pref_game_genre VARCHAR(20)
)
CREATE TABLE Normal_Users(
email VARCHAR(20) PRIMARY KEY FOREIGN KEY REFERENCES Members,
first_name VARCHAR(20),
last_name VARCHAR(20),
date_of_birth date,
age as (YEAR(CURRENT_TIMESTAMP) - YEAR(date_of_birth))
)
我正在尝试执行以下insert语句:
INSERT INTO Normal_Users VALUES('testemail@gmail.com', 'Adam', 'Robert', '05-04-1990')
但是我收到以下错误:
INSERT语句与FOREIGN KEY约束“FK__Normal_Us__email__74994623”冲突。冲突发生在数据库“DatabasesProject”,表“dbo.Members”,列“email”中。 声明已经终止。
我做错了什么?
答案 0 :(得分:3)
您必须首先填充Members
表。
INSERT INTO Members(email) VALUES('testemail@gmail.com')
INSERT INTO Normal_Users VALUES('testemail@gmail.com', 'Adam', 'Robert', '05-04-1990')
答案 1 :(得分:0)
在Normal_Users上,您将电子邮件设置为主键和外键。
更好的解决方案是仅将电子邮件设置为外键,并选择另一个作为主键(可能是生成的ID)。