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 ;
嗨,我只是需要帮助,因为我是 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 ;