插入语句在MYSQL中不起作用(FOREIGN KEY)

问题描述 投票:1回答:2

你好我得到这个错误,无法弄清楚如何解决它,任何人都知道我应该如何解决这个,所以我的插入语句将工作?

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)
mysql sql sql-server
2个回答
1
投票

我认为,错误信息非常清楚。

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的记录


0
投票

我通过取出母亲和父亲的身份证来解决这个问题

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

© www.soinside.com 2019 - 2024. All rights reserved.