我有一张这样的表:
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。
感谢。
答案 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
也将被中止。