У меня есть 2 таблицы, давайте назовите ее таблицу A и таблицу B, каждый раз, когда что-то вставляется в таблицу, AI хочет, чтобы некоторые данные (id, name, comment) автоматически вставлялись также в таблицу B, но только в том случае, если в таблице B нет одинакового имени.MySQL, если условие внутри триггера
Пример:
Если вставить Object1 в А со значениями:
id=1, colour=2, name=example, price=5€, comment="blablabla"
она должна быть вставлена в таблице В строке с этими значениями:
id=1, name=example, comment="blablabla"
, но если потом Я вставляю OBJECT2 в A со значениями:
id=2, colour=5, name=example, price=10€, comment="aaa";
ничего не должно произойти в таблице B, потому что в таблице B уже есть строка с именем = example.
Это мой код:
CREATE TRIGGER mytrigger
BEFORE INSERT ON tablea
IF NOT EXISTS (SELECT * FROM tableb WHERE tableb.name = NEW.name)
THEN
INSERT INTO tableb (id, name, comment)
VALUES (NEW.id, NEW.name, NEW.comment)
END IF
И это ошибка я получаю:
У Вас есть ошибка в вашем SQL синтаксиса ...
Я также попытался добавив BEGIN и END в начале и конце определения, также попытался с END вместо END IF, также попытался BEGIN вместо THEN
Кто-нибудь знает, что я делаю неправильно?
Триггеры ** высоко конкретного производителя ** - поэтому, пожалуйста, добавить тег, чтобы указать, используете ли вы 'mysql',' 'postgresql', SQL-сервер ',' oracle' или 'db2' - или что-то еще. –