postgresql - 如何将数据库中的所有列转换为不区分大小写

标签 postgresql

我看到可以在 psql 中使用以下命令将所有 转换为不区分大小写的名称:

\o /tmp/go_to_lower
select 'ALTER TABLE '||'"'||tablename||'"'||' RENAME TO ' ||
lower(tablename)||';' from pg_tables where schemaname = 'public';
psql -U username database < /tmp/go_to_lower

我一直无法找到一条命令,以相同的方式将所有 转换为不区分大小写。如何实现?

编辑:显然上面的代码只将表名转换为小写。我知道这段代码 ALTER TABLE "YourTableName"RENAME TO YourTableName;将转换为不区分大小写的表名。有没有办法对列名的质量执行类似的功能?

最佳答案

按照原来的思路,那么,你应该可以做到以下几点。这将重命名所有不是小写的列,方法是从 information_schema 中提取它们,为更改生成 SQL,将其存储到文件中,然后再次执行 SQL。

\t on
select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME COLUMN '||'"'||column_name||'"'||' TO ' || lower(column_name)||';' 
from information_schema.columns 
where table_schema = 'public' and lower(column_name) != column_name
\g /tmp/go_to_lower
\i /tmp/go_to_lower

关于postgresql - 如何将数据库中的所有列转换为不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10086532/

相关文章:

django - 完整性错误: null value in column "id" for all models/fields with ForeignKey after postgres restore from dump

swift - 无法创建用于查询嵌套父项的 Fluent ORM 查询

postgresql - 从 postgis 中的查询插入表单

sql - 我如何四舍五入到一个完整的整数postgres

ruby-on-rails - Rails 没有将用户数据输入到 postgresql

ruby-on-rails - Rails 从嵌套记录中查找

sql - 如何使用 MAX 函数过滤 INNER JOIN 的结果

database - 使用 Cloud App 从本地转储恢复 Heroku 上的数据库

postgresql - 当 bool 字段设置为 true 时,postgres 更新日期字段

ruby-on-rails - Rails 通过连接表获取关联计数