MySQL 触发器:阻止向 bbb 表插入数据 - status 为 0 的情况
MySQL 触发器:阻止向 bbb 表插入数据 - status 为 0 的情况
本文将介绍如何在 MySQL 中定义一个触发器,用于阻止向 'bbb' 表插入数据,当 'aaa' 表中相关联的记录的 'status' 值为 0 时。
以下是 MySQL 触发器定义:
CREATE TRIGGER before_bbb_insert
BEFORE INSERT ON bbb
FOR EACH ROW
BEGIN
IF (SELECT status FROM aaa WHERE id = NEW.aaa_id) = 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot insert into bbb table because status in aaa table is 0';
END IF;
END;
这个触发器会在向 'bbb' 表插入一行之前被触发。它会检查 'aaa' 表中与 'bbb' 行相关联的记录的 'status' 值是否为 0,如果是,就会发出一个 SQLSTATE '45000' 的错误信号,阻止向 'bbb' 表插入一行。需要注意的是,这个触发器只会在插入操作时被触发,而不是在更新或删除操作时。
原文地址: https://www.cveoy.top/t/topic/mI3o 著作权归作者所有。请勿转载和采集!