MYSQL срабатывает триггер только тогда, когда никакое значение не вставлено вручную - не работает - PullRequest
0 голосов
/ 02 апреля 2020

Привет, мне просто нужна помощь, так как я новичок в триггере mysql.

Я пытаюсь создать триггер, который, если идентификатор проекта равен NULL, установит новое значение, но если кто-то вручную вставил значение, тогда он ничего не сделает. Я выполнил это, но он не работает с mysql.

CREATE TRIGGER custom_autonums_pdl BEFORE INSERT ON project_details_logs FOR each ROW WHEN (new.projectid IS NULL) BEGIN SET new.projectid = getNextCustomSeqPl(year(now()),year(now())); END// delimiter ;

Если кто-то может дать мне указание исправить это, оцените это.

Спасибо.

1 Ответ

1 голос
/ 02 апреля 2020

Я не видел триггера MariaDb / MySQL, который бы использовал синтаксис WHEN, доступный в других основных СУБД - вам нужно будет запускать триггер для каждой вставки и условно воздействовать на идентификатор:

DELIMITER |
CREATE TRIGGER custom_autonums_pdl 
BEFORE INSERT ON project_details_logs 
FOR each ROW 
BEGIN 
    IF new.projectid IS NULL THEN
      SET new.projectid = getNextCustomSeqPl(year(now()),year(now()));
    END IF;
END|
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...