DELIMITER $$ CREATE TRIGGER check_value BEFORE INSERT ON bbb FOR EACH ROW BEGIN DECLARE v_value INT UNSIGNED; SELECT value INTO v_value FROM aaa; IF v_value > 100 AND v_value < 200 THEN INSERT INTO bbb (column1, column2, column3) VALUES (NEW.column1, NEW.column2, NEW.column3); ELSE SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Value is not within the range of 100 and 200'; END IF; END$$ DELIMITER ;

注:此处的列名和表名仅为示例,请根据实际情况进行修改。

用mysql写一个触发器aaa表有虚拟列value定义为INT UNSIGNED AS a1+a2 VIRTUAL;当bbb表插入一行时首先判断aaavalue是否大于100和小于200如果是就插入如果不是就抛出错误

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

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