你好,我遇到了这个错误,但不知道如何解决,有人知道我应该如何解决这个问题,这样我的插入语句才能正常工作吗?
The INSERT statement conflicted with the FOREIGN KEY SAME TABLE constraint "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 的记录
关于mysql - 插入语句在 MYSQL 中不起作用(FOREIGN KEY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936748/