sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo agregar una nueva columna en una tabla después de la segunda o tercera columna en la tabla usando postgres?

No, no hay una forma directa de hacerlo. Y hay una razón para ello:cada consulta debe enumerar todos los campos que necesita en cualquier orden (y formato, etc.) que los necesite, lo que hace que el orden de las columnas en una tabla sea insignificante.

Si realmente necesita hacer eso, puedo pensar en una solución alternativa:

  • volcar y guardar la descripción de la tabla en cuestión (utilizando pg_dump --schema-only --table=<schema.table> ... )
  • añada la columna que desee donde la desee en la definición guardada
  • cambie el nombre de la tabla en la definición guardada para que no entre en conflicto con el nombre de la tabla anterior cuando intente crearla
  • crear la nueva tabla usando esta definición
  • llene la nueva tabla con los datos de la tabla anterior usando 'INSERT INTO <new_table> SELECCIONE campo1, campo2, <default_for_new_field> , campo3,... DESDE <old_table> ';
  • cambiar el nombre de la tabla anterior
  • cambie el nombre de la nueva tabla al nombre original
  • finalmente suelte la tabla antigua y renombrada después de asegurarse de que todo esté bien