sql >> Database teknologi >  >> RDS >> PostgreSQL

Skift tabelkolonnenavne til store bogstaver i postgres

Før jeg forklarer, hvordan man gør dette, vil jeg stærkt foreslå IKKE at gøre det.

I PostgreSQL, hvis tabel- eller kolonnenavne er uden anførselstegn, f.eks.:

SELECT Name FROM MyTable WHERE ID = 10

De foldede faktisk automatisk til små bogstaver for det første, så forespørgslen ovenfor er identisk med:

SELECT name FROM mytable WHERE id = 10

Hvis du skulle konvertere alle navne til store bogstaver, virker denne sætning IKKE :

SELECT NAME FROM MYTABLE WHERE ID = 10

Du bliver nødt til at citere hvert enkelt navn i denne forespørgsel for at få det til at virke:

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

Hvis du på den anden side bruger standard PostgreSQL-aftale med små bogstaver, kan du bruge en hvilken som helst kombination af bogstaver, og det vil fungere, så længe du ikke citerer noget navn.

Nu, hvis du stadig insisterer på at konvertere til store bogstaver, kan du gøre det ved at dumpe dit databaseskema ind i en fil ved hjælp af pg_dump --skema-kun .

Når du har gjort det, skal du kontrollere alle OPRET TABEL udsagn og konstruer passende ÆNDRINGSTABEL udsagn baseret på dette dump - du bliver nødt til at skrive et eller andet script (Perl eller Python) for at gøre det.

Alternativt kan du læse INFORMATION_SCHEMA.TABLER og/eller INFORMATION_SCHEMA.COLUMNS og konstruer og eksekver også passende ALTER TABLE udsagn.



  1. CAS-databasegodkendelse virker ikke

  2. APEX:Download BLOB fra den midlertidige tabel

  3. Billedeksempel og upload ved hjælp af PHP og MySQL-database

  4. SQL Server:GROUP BY-sætning for at få kommaseparerede værdier