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

Come aggiungere una nuova colonna in una tabella dopo la 2a o 3a colonna nella tabella usando postgres?

No, non c'è un modo diretto per farlo. E c'è una ragione per questo:ogni query dovrebbe elencare tutti i campi di cui ha bisogno in qualsiasi ordine (e formato, ecc.) Necessari, rendendo così insignificante l'ordine delle colonne in una tabella.

Se hai davvero bisogno di farlo, posso pensare a una soluzione alternativa:

  • scarica e salva la descrizione della tabella in questione (usando pg_dump --schema-only --table=<schema.table> ... )
  • aggiungi la colonna che desideri dove vuoi nella definizione salvata
  • rinominare la tabella nella definizione salvata in modo da non entrare in conflitto con il nome della vecchia tabella quando si tenta di crearla
  • crea la nuova tabella utilizzando questa definizione
  • compila la nuova tabella con i dati della vecchia tabella usando 'INSERT INTO <new_table> SELEZIONA campo1, campo2, <default_for_new_field> , campo3,... DA <old_table> ';
  • rinomina la vecchia tabella
  • rinominare la nuova tabella con il nome originale
  • alla fine elimina la vecchia tabella rinominata dopo esserti assicurato che tutto sia a posto