sql >> Databasteknik >  >> RDS >> PostgreSQL

Ändra tabellkolumnnamn till versaler i postgres

Innan jag förklarar hur man gör detta, skulle jag starkt föreslå att du INTE gör det.

I PostgreSQL, om tabell- eller kolumnnamn är utan citattecken, som:

SELECT Name FROM MyTable WHERE ID = 10

De viktes faktiskt automatiskt till gemener först, så frågan ovan är identisk med:

SELECT name FROM mytable WHERE id = 10

Om du skulle konvertera alla namn till versaler, kommer den här satsen INTE att fungera :

SELECT NAME FROM MYTABLE WHERE ID = 10

Du måste dubbelcitera varje enskilt namn i den här frågan för att få det att fungera:

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

Om du å andra sidan använder PostgreSQL standardavtal med endast små bokstäver, kan du använda valfri skiftkombination och det kommer att fungera så länge du inte citerar något namn.

Nu, om du fortfarande insisterar på att konvertera till versaler, kan du göra det genom att dumpa ditt databasschema i en fil med pg_dump --schema-only .

När du har gjort det, kontrollera alla SKAPA TABELL uttalanden och konstruera lämpliga ÄNDRINGSTABELL uttalanden baserade på denna dump - du måste skriva något skript (Perl eller Python) för att göra det.

Alternativt kan du läsa INFORMATION_SCHEMA.TABLER och/eller INFORMATION_SCHEMA.COLUMNS och även konstruera och exekvera lämplig ALTER TABLE uttalanden.



  1. MYSQL Väljer du EXAKT ord med MATCH-frågan?

  2. Spatial data i PostgreSQL

  3. Bestäm om en sql-sats börjar med ordet SELECT

  4. Hur kan jag kryptera data i mysql-databasen?