я получаю ошибку при использовании NEW.id в триггерах базы данных - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь создать триггер для вставки данных. И я хочу получить текущий идентификатор для этого автора или пользователя, который вставляет или изменяет таблицу. Но я получаю эту ошибку:

неизвестный идентификатор столбца в новом

вот мой запрос

INSERT INTO logs VALUES(null,NEW.id,'inserted',NOW());

У меня есть две таблицы в моей базе данных comments таблица и logs таблица ...

Может кто-нибудь помочь мне, как я могу избавиться от этой ошибки ...

1 Ответ

0 голосов
/ 17 апреля 2019

Похоже, в вашей таблице комментариев есть такие столбцы:

CREATE TABLE comments (
  comment_id ...
  author ...
  message ...
);

Но ваш оператор INSERT в триггере ссылается на NEW.id.В вашей таблице комментариев нет столбца id.Синтаксис NEW.* - это способ получить доступ к строке, в которой был выполнен триггер.Вы можете ссылаться только на столбцы, которые существуют в этой таблице.

Так как я предполагаю, что ваш столбец первичного ключа равен comment_id, вы должны сбросить триггер и воссоздать его для запуска INSERT следующим образом:

INSERT INTO logs VALUES(null,NEW.comment_id,'inserted',NOW());

Дело в том, что NEW.comment_id должен ссылаться на столбец в таблице комментариев, для которого вы определили триггер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...