MYSQL 仅在没有手动插入值时触发触发器 - 不起作用

MYSQL fires the trigger only when no value manually inserted - not working

嗨,我只是需要帮助,因为我是 mysql 触发器的新手。

我正在尝试创建一个触发器,如果​​项目 ID 为 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 ;

如果有人可以指导我更正此问题,不胜感激。

谢谢。

我还没有看到使用其他主要 RDBMS 中可用的 WHEN 语法的 MariaDb/MySQL 触发器 - 您需要 运行 每个插入的触发器并有条件地作用于 id:

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 ;