есть простой «ПОСЛЕ UPDATE» Например спускового:MonetDB ПЕРЕД ВСТАВИТЬ Триггеры просто не работает, и мне нужна hlep чтобы разобраться в документации MonetDB
https://www.monetdb.org/Documentation/SQLreference/Triggers
Это один работает, но я пытался изменить это к BEFORE INSERT, и для каждой полосы отвода:
создать таблицу:
CREATE TABLE t1 (id INT, name VARCHAR(1024));
Вставить некоторые значения:
INSERT INTO t1 VALUES(10, 'monetdb');
INSERT INTO t1 VALUES(20, 'monet');
создать триггер:
CREATE TRIGGER test5 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES(4, 'update_when_statement_true');
Вставьте некоторые вещи, чтобы проверить функциональность триггера:
INSERT INTO t1 SELECT * FROM t1;
Выберите некоторые вещи, чтобы посмотреть, что случилось:
SELECT * FROM t1;
Результаты:
+------+---------+ | id | name | +======+=========+ | 10 | monetdb | | 20 | monet | | 10 | monetdb | | 20 | monet | +------+---------+
Так в основном ничего не произошло, что я могу сказать с триггером. Я пробовал всевозможные вещи в триггере типа BEGIN ATOMIC ... END, вызывая процедуру, которая вставляет эту строку, используя функции и ничего, что я нашел, сработало.
Какая плохая часть заключается в том, что это даже не близко к тому, что я хочу выполнить с помощью триггера insert, это просто видно, могу ли я заставить его работать. То, что я действительно хочу сделать, это поймать строку и вставить ее в другую таблицу, если мне не нравятся некоторые из значений. Я делаю это в postgres уже, и я оцениваю, может ли MonetDB дать мне аналогичную функциональность. Большое спасибо.