[在MySQL中]
有没有办法限制任何字段不能为0,并且如果我得到0值,将其转换为NULL。
例如,两个产品不能有相同的序列号,但产品可以完全没有序列号。
我现在正在使用这个:(对于几个字段)
CREATE TABLE products (
sn DECIMAL(8,2),
UNIQE (sn),
...........
) ENGINE=InnoDB;
CREATE TRIGGER prod_zero1 BEFORE UPDATE ON products FOR EACH ROW
SET NEW.sn=NULLIF(NEW.sn,0);
有没有更短、更快的方法来做这件事?
另一个问题是,当我尝试在同一张表中使用这个方法来处理几个字段时,会提示以下信息:
CREATE TRIGGER prod_zero2 BEFORE UPDATE ON products FOR EACH ROW
SET NEW.name=NULLIF(NEW.name,"");
ERROR 1235 (42000): This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
谢谢