sql >> Databáze >  >> RDS >> PostgreSQL

Změňte názvy sloupců tabulky na velká písmena v postgresu

Než vysvětlím, jak to udělat, důrazně navrhněte to NEDĚLAT.

Pokud v PostgreSQL nejsou názvy tabulek nebo sloupců v uvozovkách, například:

SELECT Name FROM MyTable WHERE ID = 10

Ve skutečnosti se automaticky složily na malá písmena za prvé, takže dotaz výše je totožný s:

SELECT name FROM mytable WHERE id = 10

Pokud byste převedli všechna jména na velká písmena, tento příkaz NEBUDE fungovat :

SELECT NAME FROM MYTABLE WHERE ID = 10

Aby to fungovalo, budete muset každé jméno v tomto dotazu uvést v uvozovkách:

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

Pokud na druhou stranu používáte standardní PostgreSQL dohodu pouze s malými písmeny, můžete použít libovolnou kombinaci velkých a malých písmen a bude fungovat, pokud neuvedete žádné jméno.

Nyní, pokud stále trváte na převodu na velká písmena, můžete to udělat uložením schématu databáze do souboru pomocí pg_dump --schema-only .

Až to uděláte, zkontrolujte všechny CREATE TABLE prohlášení a vytvořte vhodné ALTER TABLE příkazy založené na tomto výpisu - k tomu budete muset napsat nějaký skript (Perl nebo Python).

Případně si můžete přečíst INFORMATION_SCHEMA.TABLES a/nebo INFORMATION_SCHEMA.COLUMNS a také zkonstruovat a spustit příslušnou ALTER TABLE prohlášení.



  1. MySQL aktualizuje sloupec Varchar s hodnotou NULL

  2. Vygenerujte řadu týdenních intervalů pro daný měsíc

  3. Chci zkopírovat tabulku obsaženou z jedné databáze a vložit do jiné databázové tabulky

  4. Jak určit název hostitele v Oracle APEX?