i’m create:
CREATE TABLE "main" (
"pubKey" blob,
"age" integer,
PRIMARY KEY("pubKey")
);
CREATE TABLE "mainCount" (
"age" integer,
"count_" Long,
PRIMARY KEY("age")
);
CREATE TRIGGER bulk_insert_main
BEFORE INSERT ON main
WHEN NOT EXISTS (SELECT pubKey FROM main WHERE pubKey = NEW.pubKey)
BEGIN
INSERT INTO mainCount (age, count_) VALUES (NEW.age, 1);
END
CREATE TRIGGER bulk_update_main
BEFORE INSERT ON main
WHEN EXISTS (SELECT pubKey FROM main WHERE pubKey = NEW.pubKey AND age + 0 < NEW.age + 0)
BEGIN
UPDATE main
SET (age) = (NEW.age)
WHERE pubKey = NEW.pubKey;
INSERT INTO mainCount (age, count_) VALUES (OLD.age, -1);
INSERT INTO mainCount (age, count_) VALUES (NEW.age, 1);
SELECT raise(IGNORE);
END
CREATE TRIGGER bulk_ignore_main
BEFORE INSERT ON main
WHEN EXISTS (SELECT pubKey FROM main WHERE pubKey = NEW.pubKey AND age + 0 >= NEW.age + 0)
BEGIN
SELECT raise(IGNORE);
END
CREATE TRIGGER bulk_update_mainCount
BEFORE INSERT ON mainCount
WHEN EXISTS (SELECT * FROM mainCount WHERE age = NEW.age)
BEGIN
UPDATE mainCount
SET (count_) = (count_ + NEW.count_)
WHERE age = NEW.age;
SELECT raise(IGNORE);
END
then, when i try insert INSERT, i have error:
Execution finished with errors.
Result: no such column: OLD.age
At line 1:
INSERT INTO main (pubKey, age) VALUES (1, 1)
so, if i delete “INSERT INTO mainCount (age, count_) VALUES (OLD.age, -1);” from TRIGGER bulk_update_main
i’m does’t have any error…
what am i doing wrong in this trigger?
New contributor
infoman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.