gpt4 book ai didi

mysql - 自动将 0 或空字符串转换为 NULL

转载 作者:可可西里 更新时间:2023-11-01 08:37:40 33 4
gpt4 key购买 nike

[在 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);

有没有更短\更快的方法呢?
另一个问题是,当我尝试将它用于同一个表中的几个字段时,我得到了 massege:

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'

谢谢

最佳答案

不要使用多个触发器,使用一个负责所有字段的触发器

CREATE TRIGGER prod_zero2 BEFORE UPDATE ON products FOR EACH ROW
BEGIN
SET NEW.sn=NULLIF(NEW.sn,0);
SET NEW.name=NULLIF(NEW.name,"");
END;

关于mysql - 自动将 0 或空字符串转换为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6534035/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com