3为商品表创建一个限制更新触发器TRI_商品。要求:若修改商品表中某个记录的商店编号则要检查商店表中是否存在与该商店编号相同的记录若存在则不许修改若不存在则可修改。使用UPDATE语句将商品表中的商店编号51949修改为94915是否能够成功修改?
以下是创建限制更新触发器TRI_商品的SQL语句:
CREATE TRIGGER TRI_商品
BEFORE UPDATE ON 商品
FOR EACH ROW
BEGIN
DECLARE cnt INT;
SELECT COUNT(*) INTO cnt FROM 商店 WHERE 商店编号 = NEW.商店编号;
IF cnt > 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '商店编号不存在';
END IF;
END;
该触发器会在更新“商品”表中的记录时触发,检查新的商店编号在“商店”表中是否存在,若不存在则不允许更新。
使用以下UPDATE语句将“商品”表中的商店编号“51949”修改为“94915”:
UPDATE 商品 SET 商店编号 = '94915' WHERE 商品编号 = '12345';
根据触发器的限制,如果“商店”表中不存在商店编号为“94915”的记录,则UPDATE语句会失败并返回错误信息“商店编号不存在”,并不会成功修改。
原文地址: https://www.cveoy.top/t/topic/fGDJ 著作权归作者所有。请勿转载和采集!