如何在PostgreSQL中将empty转换为null?

如何在PostgreSQL中将empty转换为null?,第1张

如何在PostgreSQL中将empty转换为null?

有NULLIF()功能:

SELECT NULLIF(var, '');

如果var保持$ 2中的值,则NULL取而代之。
在这个例子中我替换空字符串:’‘有NULL。

有该类型的整数无空字符串。只是不可能。由于NULLIF()无法切换数据类型,因此必须清理PHP中的输入

如果您没有定义默认列,则也可以在命令中省略该列,INSERT并将其填充为NULL(这是默认值DEFAULT)。

检查PHP中的参数是否为空,如果没有,则不要在INSERT命令中包括该列。

或者使用PHP文字NULL代替,如Quassnoi在此处演示的那样。

其余的仅对字符串类型有意义
为了绝对确定,没有人可以输入空字符串CHECK向表中添加约束:

ALTER TABLE tr_viewADD ConSTRAINT tr_view_age_not_empty CHECK (age <> '');

为了避免由此引起的异常,您可以添加一个自动修复输入的触发器:

CREATE OR REPLACE FUNCTION trg_tr_view_avoid_empty()  RETURNS trigger AS$func$BEGIN   IF NEW.age = '' THEN      NEW.age := NULL;   END IF;   IF NEW.month = '' THEN      NEW.month := NULL;   END IF;   RETURN NEW;END$func$  LANGUAGE plpgsqlCREATE TRIGGER tr_view_avoid_emptyBEFORE INSERT OR UPDATE ON tr_viewFOR EACH ROWWHEN (NEW.age = '' OR NEW.month = '')EXECUTE PROCEDURE trg_tr_view_avoid_empty();


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5662332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存