Ссылка на внешнюю таблицу в триггере - PullRequest
0 голосов
/ 29 апреля 2018

Я использую MariaDB в качестве базы данных и сталкиваюсь с некоторыми проблемами при создании триггера. Код ниже:

    CREATE TRIGGER `trigger` BEFORE INSERT ON `table_1` FOR EACH ROW 
     BEGIN
        IF NOT CONTAINS(`db`.`table_2`.`item`, NEW.item) THEN
            INSERT INTO `db`.`table_2` (`item`, `item_2`, `item_3`) VALUES (NEW.item, "foo", 
            "bar");
     END IF;
     END

Проблема в том, что table_2 находится в базе данных "db" вместе с table_1, но когда этот код запускается, выдает ошибку ниже:

SQL Error (1109): Unknown table 'table_2' in field list

Я очень смущен этим, потому что кажется, что я должен быть в состоянии сделать это всем, что читаю. Все, что я пытаюсь сделать, это заставить вставку в одну таблицу вызвать вставку в другую таблицу, если условие не выполняется.

1 Ответ

0 голосов
/ 29 апреля 2018

Я предполагаю, что вы намереваетесь:

 CREATE TRIGGER `trigger` BEFORE INSERT ON `table_1` FOR EACH ROW 
 BEGIN
    IF NOT EXISTS (SELECT 1 FROM db.table_2 t2 WHERE CONTAINS(t2.item, NEW.item) THEN
        INSERT INTO `db`.`table_2` (`item`, `item_2`, `item_3`)
            VALUES (NEW.item, 'foo', 'bar');
     END IF;
 END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...