如果ID号太高,则阻止添加新行的触发器

时间:2017-11-14 19:33:31

标签: mysql sql

我有桌子"月份"有12行(显然),我想添加一个触发器,如果​​ID号超过12

,则阻止添加新行
CREATE TRIGGER "no_more_months" BEFORE INSERT ON "months"
 FOR EACH ROW BEGIN
IF NEW.ID_Month>12 THEN
SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT = 'check constraint on Months failed';
END IF;
END;

但不知怎的,它不起作用,仍然会添加新行

1 个答案:

答案 0 :(得分:1)

如评论部分所述,只需要一个约束即可完成工作。

ALTER TABLE [dbo].[Months] 
    ADD CONSTRAINT CK_Months_ID_Months CHECK ([ID_Months] <= 12 AND [ID_Months] > 0);

如果您完全需要自定义错误消息,请查看以下文章:MySql Signals