我正在尝试使用以下示例在违反B
时将重复数据插入表中:PKA
BEFORE INSERT TRIGGER
CREATE TABLE A( Col INTEGER, Coll TEXT(25), CONSTRAINT PKA PRIMARY KEY(Col, Coll) ON CONFLICT IGNORE);
CREATE UNIQUE INDEX IX_A ON A(Col, Coll);
CREATE TABLE B( Col INTEGER, Coll TEXT(25));
CREATE INDEX IX_B ON B(Col, Coll);
CREATE TRIGGER Trig
BEFORE INSERT
ON A
WHEN (Col = New.Col AND Coll = New.Coll)
BEGIN
INSERT INTO B(Col, Coll) VALUES(New.Col, New.Coll);
END;
但是,那里似乎Col
无法访问该列,所以它抛出:
没有这样的列:Col
即使我将条件更改为
New.Col IN(SELECT Col FROM A)
AND
New.Coll IN(SELECT Coll FROM A)
我收到另一条错误消息:
UNIQUE 约束失败:A.Col、A.Col
虽然它不应该因为ON CONFLICT IGNORE
.
- 为什么我会收到这些错误消息?(是什么原因)。
- 如何使用触发器将重复项插入另一个表?