首先创建两个表user和person:

CREATE TABLE user (
    id INT PRIMARY KEY,
    v INT
);

CREATE TABLE person (
    id INT PRIMARY KEY,
    s INT
);

然后创建一个触发器:

CREATE TRIGGER update_person
BEFORE UPDATE ON person
FOR EACH ROW
BEGIN
    DECLARE v_value INT;
    
    SELECT v INTO v_value FROM user WHERE id = NEW.id;
    
    IF v_value = 0 AND NEW.s = 2 THEN
        UPDATE person SET s = NEW.s WHERE id = NEW.id;
    ELSE
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Update operation on person table is not allowed.';
    END IF;
END;

这个触发器会在每次更新person表的前面执行。它会检查user表中id等于被更新的person行的id的v值是否为0,以及被更新的person行的s值是否为2。如果两个条件都满足,它会执行更新操作;否则,它会发出一个信号,终止更新操作。

用mysql写一个触发器在更新person前如果user表的v为0且插入person的s为2就执行更新否则就终止

原文地址: https://www.cveoy.top/t/topic/bjty 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录