为什么在尝试将记录添加到PostGres表时会出现错误,以及如何解决此问题:
INSERT INTO common.levels(level_pid, level_name) VALUES(0,'Level1')
表格结构:
CREATE TABLE IF NOT EXISTS common.levels
(
level_id SERIAL PRIMARY KEY NOT NULL,
level_pid INTEGER NOT NULL,
level_name VARCHAR(40) NOT NULL,
CONSTRAINT FK_MT_Parent FOREIGN KEY (level_pid) REFERENCES common.levels(level_id) ON DELETE CASCADE
);
错误:
答案 0 :(得分:1)
您创建的FK约束指定level_pid必须已作为此表中的level_id存在。因此,当您插入值' Level1'这不作为表中的level_id存在,因此插入会违反FK约束。我建议创建表,插入所有必需的初始数据,然后插入FK约束。请注意,必须以最终每个level_pid对应于表中的level_id的方式插入数据。
希望这会有所帮助。