Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在多个触发器中使用存储过程_Mysql_Sql_Stored Procedures_Triggers - Fatal编程技术网

Mysql 在多个触发器中使用存储过程

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 = @

除了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 = @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 ;