Mysql 在多个触发器中使用存储过程
除了notes表之外,我还将这个触发器应用于大约15个其他表。不确定,但似乎存储过程将消除重复的代码。这是一个很好的存储过程应用程序吗?如果是,如何实施Mysql 在多个触发器中使用存储过程,mysql,sql,stored-procedures,triggers,Mysql,Sql,Stored Procedures,Triggers,除了notes表之外,我还将这个触发器应用于大约15个其他表。不确定,但似乎存储过程将消除重复的代码。这是一个很好的存储过程应用程序吗?如果是,如何实施 CREATE TRIGGER tg_notes_ins BEFORE INSERT ON notes FOR EACH ROW BEGIN IF NEW.created_by_user IS NULL OR NEW.created_by_user = '' THEN SET NEW.created_by_user = @
CREATE TRIGGER tg_notes_ins BEFORE INSERT ON notes FOR EACH ROW
BEGIN
IF NEW.created_by_user IS NULL OR NEW.created_by_user = '' THEN
SET NEW.created_by_user = @users_id;
END IF;
IF NEW.modified_by_user IS NULL OR NEW.modified_by_user = '' THEN
SET NEW.modified_by_user = @users_id;
END IF;
END$$
CREATE TRIGGER tg_notes_upd BEFORE UPDATE ON notes FOR EACH ROW
BEGIN
IF NEW.modified_by_user = OLD.modified_by_user THEN
SET NEW.modified_by_user = @users_id;
END IF;
END$$
我不是说这是怎么做的,但它似乎是工作,并将感谢任何意见。谢谢
DELIMITER $$
CREATE PROCEDURE `createRecord` ()
BEGIN
IF NEW.created_by_user IS NULL OR NEW.created_by_user = '' THEN
SET NEW.created_by_user = @users_id;
END IF;
IF NEW.modified_by_user IS NULL OR NEW.modified_by_user = '' THEN
SET NEW.modified_by_user = @users_id;
END IF;
END$$
CREATE PROCEDURE `modifyRecord` ()
BEGIN
IF NEW.modified_by_user = OLD.modified_by_user THEN
SET NEW.modified_by_user = @users_id;
END IF;
END$$
CREATE TRIGGER tg_notes_upd BEFORE UPDATE ON notes FOR EACH ROW
BEGIN
CALL createRecord();
END$$
CREATE TRIGGER tg_notes_ins BEFORE INSERT ON notes FOR EACH ROW
BEGIN
CALL modifyRecord();
END$$
DELIMITER ;