es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo mantiene postgres 11+ el valor por defecto después de que se elimina el valor por defecto?

Dado los siguientes comandos:

crear tabla foo(id serial primary key);
insertar en foo valores (1), (2), (3), (4);
alterar tabla foo añadir columna bar integer not null por defecto 10;
alterar tabla foo alterar columna bar eliminar por defecto;

Cuando ejecuto select * from foo; obtengo:

id | bar
----+------
1 | 10
2 | 10
3 | 10
4 | 10

¿Cómo es posible si a partir de postgresql 11+, evalúa los no nulos por defecto perezosamente?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Esto es posible porque PostgreSQL 11+ evalúa perezosamente los valores predeterminados no nulos, lo que significa que el valor predeterminado de 10 solo se aplica a la columna bar cuando se inserta una fila sin un valor para bar. Como el comando insert especificó un valor para bar para cada fila, el valor predeterminado de 10 no se aplicó.

Comments are closed.