如果我定义表格 a
和 b
如下:
CREATE TABLE a(i integer);
ALTER TABLE a ADD CONSTRAINT pkey_a PRIMARY KEY (i);
CREATE TABLE b(j integer);
ALTER TABLE b add CONSTRAINT fkey_ij FOREIGN KEY (j)
REFERENCES a (i) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;
INSERT INTO a(i) VALUES(1);
然后执行以下操作:
START TRANSACTION;
SET CONSTRAINTS ALL DEFERRED;
INSERT INTO b(j) VALUES(2);
INSERT INTO a(i) VALUES(2);
COMMIT;
它产生以下错误。为什么是 SET CONSTRAINTS
没有达到预期的效果?
错误:表“b”上的插入或更新违反了外键约束 “fkey_ij”
SQL状态:23503详细信息:表“a”中不存在键(j)=(2)。