opium_21002100 Ответов: 1

ООО в MySQL ошибка


у меня есть таблица под названием messagein в witch я вставляю данные в столбцы:
`SendTime`, `MessageFrom`, `MessageText`.

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

Что я уже пробовал:

CREATE TRIGGER `tranzitie` BEFORE INSERT ON `messagein`
 FOR EACH ROW UPDATE `test` SET `poz`=`poz` +1 WHERE tel = `MessageFrom`

1 Ответов

Рейтинг:
10

phil.o

Согласно с Справочное руководство MySQL 8.0: 24.3.1 синтаксис триггера и примеры[^], точный синтаксис, по-видимому, скорее:

CREATE TRIGGER `tranzitie` BEFORE INSERT ON `messagein`
FOR EACH ROW
BEGIN
   UPDATE `test` SET `poz` = `poz` + 1 WHERE tel = NEW.`MessageFrom`
END;

Обратите внимание, что здесь необходимо указать, что вы хотите получить доступ к MessageFrom столбец вновь вставленной записи, используя NEW ключевое слово.


0x01AA

Я думаю, что все эти персонажи должны быть удалены.

phil.o

Они не требуются, когда в именах элементов нет пробелов; но это способ цитирования ссылок MySQL.

0x01AA

Ладно, спасибо за подсказку. А 5.

phil.o

Добро пожаловать. Благодаря вам.