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

Jak přidat nový sloupec do tabulky za 2. nebo 3. sloupec v tabulce pomocí postgres?

Ne, neexistuje žádný přímý způsob, jak to udělat. A má to svůj důvod – každý dotaz by měl obsahovat seznam všech polí, která potřebuje, v jakémkoli pořadí (a formátu atd.), v jakém je potřebuje, takže pořadí sloupců v jedné tabulce je nevýznamné.

Pokud to opravdu potřebujete udělat, mohu vymyslet jedno řešení:

  • vypište a uložte popis příslušné tabulky (pomocí pg_dump --schema-only --table= ... )
  • přidejte požadovaný sloupec na požadované místo v uložené definici
  • přejmenujte tabulku v uložené definici, aby se při pokusu o její vytvoření nekolidovala s názvem staré tabulky
  • vytvořte novou tabulku pomocí této definice
  • naplňte novou tabulku daty ze staré tabulky pomocí „INSERT INTO SELECT pole1, pole2, , pole3,... Z ';
  • přejmenujte starou tabulku
  • přejmenujte novou tabulku na původní název
  • až se ujistíte, že je vše v pořádku, nakonec starou přejmenovanou tabulku zrušte.


  1. Přidání jednoho ze dvou nenulových omezení v postgresql

  2. Django bulk_create s ignorováním řádků, které způsobují chybu IntegrityError?

  3. Kontingenční tabulka a zřetězení sloupců

  4. 10 užitečných zkratek pro Microsoft Access při práci s ovládacími prvky na formulářích a sestavách