将所有列名更改为小写 Postgresql

Change all column names to lowercase Postgresql

我的 postgresql 数据库有问题。我添加了 5 个包含大量数据和大量列的表。现在我注意到我添加了大小写字母混合的列,这使得使用 sqlalchemy 或 pandas.read_sql_query 查询它们变得困难,因为我需要双引号来访问它们。 有没有办法用一个命令将列名中的所有值更改为小写字母?

我是 SQL 的新手,感谢您的帮助。

如果您希望简单地确保查询 returns 小写(而不更改原始条目),您可以简单地输入:

select lower(variable) from table;

另一方面,如果您希望实际更改 table 本身的大小写,则必须使用 UPDATE 命令。

UPDATE table SET variable = LOWER(variable);

类似的东西应该可以解决问题:

 SELECT LOWER(column) FROM my_table;

在 table 列上使用 anonymous code blockFOR LOOP

DO $$
DECLARE row record;
BEGIN
  FOR row IN SELECT table_schema,table_name,column_name
             FROM information_schema.columns
             WHERE table_schema = 'public' AND 
             table_name   = 'table1'
  LOOP
    EXECUTE format('ALTER TABLE %I.%I RENAME COLUMN %I TO %I',
      row.table_schema,row.table_name,row.column_name,lower(row.column_name));  
  END LOOP;
END $$;

演示:db<>fiddle