栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号