防止mysql字段中的值为零

时间:2013-12-06 22:06:39

标签: mysql ddl

我有一张这样的表:

CREATE TABLE mytable (   
  id int(10) unsigned NOT NULL AUTO_INCREMENT,   
  mynum int(10) unsigned NOT NULL,  
)

int的默认值为0(零)。在我的应用程序中,0是“mynum”的无效值。

如何确保永远不会为mynum输入0?我可以检查我的应用程序代码,但我希望我不必这样做。我希望mysql阻止在mynum字段中插入值0。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用SIGNAL中的TRIGGER语法在MySQL 5.5中执行此操作。

来源:http://dev.mysql.com/doc/refman/5.5/en/signal.html

您可以使用以下TRIGGER

执行此操作
create trigger mytable_zero_check
before insert on my_table
for each row
begin
    if(new.mynum = 0) then
        SIGNAL 'your error message'
    end if 
end

如果您正在运行< 5.5,然后您可以发出语法错误(例如将NULL分配给不允许NULL s的字段),INSERT也将被中止。