您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将整个数据库中的空字符串('')设置为NULL

将整个数据库中的空字符串('')设置为NULL

实现此目的的最有效方法

这个相关的答案具有plpgsql函数,该函数针对任何给定的表UPDATE使用系统目录pg_attribute自动安全地构建和运行命令

使用f_empty2null()此答案中的函数,您可以像这样遍历选定的表:

DO
$do$
DECLARE
   _tbl regclass;
BEGIN
   FOR _tbl IN
      SELECT c.oid::regclass
      FROM   pg_class c
      JOIN   pg_namespace n ON n.oid = c.relnamespace
      WHERE  c.relkind = 'r'            -- only regular tables
      AND    n.nspname NOT LIKE 'pg_%'  -- exclude system schemas
   LOOP
      RAISE NOTICE $$PERFORM f_empty2null('%');$$, _tbl;
      -- PERFORM f_empty2null(_tbl);  -- uncomment to prime the bomb
   END LOOP;
END
$do$;

这将更新数据库中所有用户表的所有列中的所有空字符串。确保这是您想要的,否则可能会破坏数据库

UPDATE当然,您需要对所有选定表具有特权。

作为儿童安全装置,我评论了有效载荷。

其他 2022/1/1 18:27:36 有725人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶