在我的sql中添加列,其值不允许

时间:2017-10-16 17:36:30

标签: mysql mysql-python

如何添加列,其中不允许使用该列中的值 示例...列时间,不允许的值为1,2,3,6(允许其他值) 我试图使用检查约束,但mySql忽略了它...

你能帮我解决这个问题,或者至少给我发一个关于这个问题的资料。

非常感谢!

1 个答案:

答案 0 :(得分:0)

检查约束在MySql中不起作用。

备选方案:

在桌面上添加两个触发器:

  • 插入前
  • 更新前

示例查询:

CREATE TRIGGER checkage_bi BEFORE INSERT ON mytable FOR EACH ROW
    -> BEGIN
    ->     DECLARE dummy,baddata INT;
    ->     SET baddata = 0;
    ->     IF NEW.color = 'white' or NEW.color = 'black' or NEW.color = 'red' THEN
    ->         SET baddata = 1;
    ->     END IF;         
    ->     IF baddata = 1 THEN
    ->         SELECT CONCAT('Cannot Insert This Because Color ',NEW.color,' is Invalid')
    ->         INTO dummy FROM information_schema.tables;
    ->     END IF;
    -> END; $$

您也可以类似地创建Before Update触发器。

了解更多信息click here

希望它有所帮助!