sql >> Database >  >> RDS >> PostgreSQL

Wijzig tabelkolomnamen in hoofdletters in postgres

Voordat ik uitleg hoe ik dit moet doen, zou ik sterk stel voor dat NIET te doen.

In PostgreSQL, als tabel- of kolomnamen niet aangehaald zijn, zoals:

SELECT Name FROM MyTable WHERE ID = 10

Ze werden in feite automatisch gevouwen naar kleine letters eerst, dus de bovenstaande zoekopdracht is identiek aan:

SELECT name FROM mytable WHERE id = 10

Als u alle namen in hoofdletters zou omzetten, zal deze uitspraak NIET werken :

SELECT NAME FROM MYTABLE WHERE ID = 10

U moet elke afzonderlijke naam in deze zoekopdracht dubbel citeren om het te laten werken:

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

Als u daarentegen de standaard PostgreSQL-overeenkomst voor alleen kleine letters gebruikt, kunt u elke combinatie van hoofdletters gebruiken en het zal werken zolang u geen naam citeert.

Als u er nu nog steeds op staat om naar hoofdletters te converteren, kunt u dat doen door uw databaseschema in een bestand te dumpen met behulp van pg_dump --schema-only .

Nadat je dat hebt gedaan, controleer je alle CREATE TABLE instructies en maak de juiste ALTER TABLE statements gebaseerd op deze dump - je zult een script (Perl of Python) moeten schrijven om dat te doen.

U kunt ook INFORMATION_SCHEMA.TABLES lezen en/of INFORMATION_SCHEMA.COLUMNS en bouw en voer ook de juiste ALTER TABLE uit verklaringen.



  1. Productbeoordeling - Stellaire reparatie voor MySQL

  2. exporteer het zoekresultaat als CSV via PHP

  3. MapReduc-typen en -indelingen begrijpen

  4. Hoe MySQL-kolommen herschikken?