你好我得到这个错误,无法弄清楚如何解决它,任何人都知道我应该如何解决这个,所以我的插入语句将工作?
INSERT语句与FOREIGN KEY SAME TABLE约束“fk_person_fatherID”冲突
我假设它是因为外键在主键和插入语句中工作,我们在它们制作之前声明它们?我可以完全离开,请帮忙(:
CREATE TABLE person
(
persID INT IDENTITY(1,1),
persFName VARCHAR(40) NOT NULL,
persLName VARCHAR(40) NOT NULL,
persGender CHAR(1) NOT NULL,
persDOB DATE NOT NULL,
persDOD DATE ,
fatherID INT ,
motherID INT ,
CONSTRAINT pk_person_persID PRIMARY KEY(persID),
CONSTRAINT fk_person_fatherID FOREIGN KEY (fatherID) REFERENCES person(persID),
CONSTRAINT fk_person_motherID FOREIGN KEY (motherID) REFERENCES person(persID),
这是我的插入声明。
INSERT INTO person(persFName,persLname,persGender,persDOB,persDOD,fatherID,motherID)
VALUES ('Abraham', 'Simpson', 'M', '1994-01-15', '2015-07-21',NULL,NULL),
('Mona', 'Simpson', 'F', '1946-09-22', NULL,NULL,NULL),
( 'Herb', 'Simpson', 'M', '1963-11-21',NULL,1,2),
( 'Homer', 'Simpson', 'M', '1965-05-19',NULL,1,2),
( 'Clancy', 'Bouvier', 'F', '1945-02-12',NULL,NULL,NULL),
( 'Jackie', 'Bouvier', 'M', '1945-12-01','2016-05-15',NULL,NULL),
( 'Marge', 'Simpson', 'F', '1966-05-18',NULL,6,5),
( 'Patty', 'Bouvier', 'F', '1964-01-08',NULL,6,5),
( 'Selma', 'Bouvier', 'F', '1969-03-01',NULL,6,5),
( 'Bart', 'Simpson', 'M', '1990-01-01',NULL,4,7),
( 'Lisa', 'Simpson', 'F', '1992-05-15',NULL,4,7),
( 'Maggie', 'Simpson', 'F', '1997-11-28',NULL,4,7),
( 'Ling', 'Bouvier', 'M', '2000-04-02',NULL,NULL,9)
我认为,错误信息非常清楚。
INSERT INTO person(persFName,persLname,persGender,persDOB,persDOD,fatherID,motherID)
( 'Herb', 'Simpson', 'M', '1963-11-21',NULL,1,2)
( 'Homer', 'Simpson', 'M', '1965-05-19',NULL,1,2)
你试图将FatherId
值设置为1,但我认为在person
表中没有Id 1的记录
我通过取出母亲和父亲的身份证来解决这个问题
INSERT INTO person(persFName,persLname,persGender,persDOB,persDOD)
VALUES ('Abraham', 'Simpson', 'M', '1994-01-15', '2015-07-21'),
('Mona', 'Simpson', 'F', '1946-09-22', NULL),
( 'Herb', 'Simpson', 'M', '1963-11-21',NULL),
( 'Homer', 'Simpson', 'M', '1965-05-19',NULL),
并且要添加到母亲和父亲ID中,我最终只是“编辑前200行”并在我添加输入语句后手动输入ID