【发布时间】:2009-11-06 17:02:05
【问题描述】:
我想在 PostgreSQL 中的所有表的所有列中使用空字符串更新所有记录。有没有办法通过查询来做到这一点?或者至少如何查询所有没有 NOT NULL 约束的列。
【问题讨论】:
标签: postgresql
我想在 PostgreSQL 中的所有表的所有列中使用空字符串更新所有记录。有没有办法通过查询来做到这一点?或者至少如何查询所有没有 NOT NULL 约束的列。
【问题讨论】:
标签: postgresql
像这样访问information_schema
select *
from information_schema.columns
where is_nullable = 'YES';
您可以根据这些数据为所有表和列生成自己的更新语句。
【讨论】:
select table_name, column_name from information_schema.columns where is_nullable = 'YES' and table_schema = '<name_space>' and table_catalog = '<db_name>'。在文本文件中获得此结果后,您可以将行开头替换为SELECT count(*) from,将管道分隔符替换为where,将行结尾替换为::text = '';。这将为您提供选择命令来运行以识别具有空字符串的表