postgresql – 在postgres中將表列名更改為大寫

我正在使用postgres 9.2.

我需要將postgres db中所有表的所有列名更改為UPPER CASE.

有沒有辦法做到這一點?

我需要更改postgres中的任何配置嗎?

在我解釋如何做到這一點之前,我強烈建議不要這樣做.

在PostgreSQL中,如果表名或列​​名不加引號,例如:

SELECT Name FROM MyTable WHERE ID = 10

它們實際上首先自動摺疊為小寫,因此上面的查詢與以下內容相同:

SELECT name FROM mytable WHERE id = 10

如果您要將所有名稱轉換為大寫,則此語句將不起作用:

SELECT NAME FROM MYTABLE WHERE ID = 10

您必須在此查詢中對每個名稱進行雙引號才能使其正常工作:

SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10

另一方面,如果您使用標準的PostgreSQL小寫協議,則可以使用任何案例組合,只要您不引用任何名稱,它就會起作用.

現在,如果仍然堅持轉換為大寫,則可以通過使用 pg_dump --schema-only 將資料庫模式轉儲到文件中來實現.

完成後,檢查所有 CREATE TABLE 語句並根據此轉儲構造適當的 ALTER TABLE 語句 – 您必須編寫一些指令碼(Perl或Python)來執行此操作.

或者,您可以閱讀 INFORMATION_SCHEMA.TABLES 和/或 INFORMATION_SCHEMA.COLUMNS ,並構造和執行適當的ALTER TABLE語句.

翻譯自:https://stackoverflow.com/questions/14351743/change-table-column-names-to-upper-case-in-postgres