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

¿Es importante la posición de la columna de identificación en Postgresql?

En teoría, todo debería estar bien, pero siempre hay escenarios en los que su código podría fallar.

Por ejemplo:

a) blind insert :

 INSERT INTO tab_name
 VALUES (1, 'b', 'c');

Una inserción ciega es cuando una consulta INSERT no especifica qué columnas reciben los datos insertados.

¿Por qué es esto algo malo?

Porque el esquema de la base de datos puede cambiar. Las columnas se pueden mover, renombrar, agregar o eliminar. Y cuando lo son, puede suceder una de al menos tres cosas:

  1. La consulta falla. Este es el mejor de los casos. Alguien eliminó una columna de la tabla de destino y ahora no hay suficientes columnas para insertar la inserción, o alguien cambió un tipo de datos y el tipo insertado no es compatible, etc. Pero al menos sus datos no se corrompen, e incluso puede saber que el problema existe debido a un mensaje de error.

  2. La consulta continúa funcionando, y nada está mal. Este es un escenario medio-peor de los casos. Tus datos no están corruptos, pero el monstruo aún se esconde debajo de la cama.

  3. La consulta continúa funcionando, pero ahora se están insertando algunos datos en un lugar al que no pertenecen. Sus datos se están corrompiendo.

b) ORDER BY oridinal

SELECT *
FROM tab
ORDER BY 1;