我有桌子"月份"有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;
但不知怎的,它不起作用,仍然会添加新行
答案 0 :(得分:1)
如评论部分所述,只需要一个约束即可完成工作。
ALTER TABLE [dbo].[Months]
ADD CONSTRAINT CK_Months_ID_Months CHECK ([ID_Months] <= 12 AND [ID_Months] > 0);
如果您完全需要自定义错误消息,请查看以下文章:MySql Signals