gpt4 book ai didi

mysql - 防止 MySQL 中的特定更新

转载 作者:行者123 更新时间:2023-11-30 00:57:50 26 4
gpt4 key购买 nike

我的表格中有此列:

  `Status` VARCHAR(5) NULL DEFAULT 0 COMMENT 'DRAFT, SENT, or TRASH\nSENT cannot update to DRAFT\n' ,
CONSTRAINT chk_Status CHECK (`Status` IN ('SENT', 'DRAFT', 'TRASH', NULL))

我想要做的是防止将 Status 为“SENT”的行更新为 Status 为“DRAFT”。

编辑:这是我想出的触发器,但从语法上看它似乎不正确。有什么建议吗?

TRIGGER update_Status
BEFORE UPDATE ON `Status` WHERE `Status` = 'SENT'
ON `EMAIL` FOR EACH ROW
DENY UPDATE ON `Status` TO 'DRAFT',

最佳答案

试试这个:

DELIMITER /
CREATE TRIGGER update_status
BEFORE UPDATE ON Status
FOR EACH ROW
BEGIN
DECLARE wrong_status CONDITION FOR SQLSTATE '45123';
IF new.status = 'DRAFT' AND old.Status = 'SENT' Then
SIGNAL SQLSTATE '45123'
SET MESSAGE_TEXT = 'Status cannot be changed from SENT to DRAFT';
END IF;
END;
/
DELIMITER ;

关于mysql - 防止 MySQL 中的特定更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com