Si tengo una tabla con las columnas:
id | name | created_date
y me gustaría agregar una columna, yo uso:
alter table my_table add column email varchar(255)
Luego, la columna se agrega después de la created_date
columna.
¿Hay alguna forma de especificar la posición de la nueva columna? Por ejemplo, puedo agregarlo después name
y obtener una tabla como:
id | name | email | created_date
postgresql
database-design
Jonas
fuente
fuente
view
programa que lo muestre en ese orden ... técnicamente, la posición de la columna no debería importar, ya que puede definirlos en cualquier orden en una consulta ... y generalmente no debería hacer unselect *
psql -E
interruptor para ver la consulta real)Respuestas:
ALTER TABLE ADD COLUMN
solo agregará la nueva columna al final, como la última. Para crear una nueva columna en otra posición, debe volver a crear la tabla y copiar los datos de la tabla anterior / actual en esta nueva tabla.fuente
Tendrá que volver a crear la tabla si desea un cierto orden. Solo haz algo como:
Cree índices según sea necesario, etc.
fuente
Si desea esto solo por apariencia, me resulta más fácil mantener una vista por cada tabla con el orden deseado de columnas, y seleccionarla en lugar de la tabla.
Para todos los demás propósitos (como inserción, unión), es mejor especificar siempre la lista de columnas.
fuente