Con Firebird tenemos la posibilidad de insertar valores automáticamente en las columnas. Esto puede resultar muy útil porque nos ahorra tiempo al escribir el comando INSERT (o el comando: UPDATE OR INSERT) y también nos asegura que esas columnas siempre tengan valores, que no se guarde NULL en ellas.

INSERTAR1Captura 1. (Si haces clic en la imagen la verás más grande)

En la Captura 1 podemos ver la estructura de la tabla ALUMNOS. Ninguna columna tiene un valor por defecto entonces si escribimos:

INSERT INTO ALUMNOS
           (ALU_IDENTI, ALU_NOMBRE, ALU_APELLD)
    VALUES (0         , 'JUAN'    , 'PÉREZ')

Esto será lo que obtendremos:

INSERTAR2

Captura 2. (Si haces clic en la imagen la verás más grande)

Como puedes ver en la Captura 2 las columnas ALU_IDENTI, ALU_NOMBRE y ALU_APELLD tienen valores mientras que las demás columnas tienen NULL en ellas.

Modifiquemos ahora la tabla ALUMNOS para ponerle valores por defecto a algunas columnas y veamos que sucede.

INSERTAR3

Captura 3. (Si haces clic en la imagen la verás más grande)

Ahora tenemos cuatro columnas que tienen valores por defecto (son los que se encuentran en “Default Source”). Entonces cuando insertamos una nueva fila:

INSERT INTO ALUMNOS
           (ALU_IDENTI, ALU_NOMBRE, ALU_APELLD)
    VALUES (0         , 'MARÍA'   , 'BENÍTEZ' )

esto es lo que obtenemos:
INSERTAR4

Captura 4. (Si haces clic en la imagen la verás más grande)

 como puedes ver, ahora al insertar una fila también se insertan automáticamente sus valores por defecto.

CURRENT_USER es el usuario actual

CURRENT_TIMESTAMP es la fecha y hora del Servidor

Si no queremos que se inserten los valores por defecto entonces debemos asignarle un valor a las columnas respectivas, como vemos a continuación:

INSERT INTO ALUMNOS
           (ALU_IDENTI, ALU_NOMBRE, ALU_APELLD, ALU_CODDEP, ALU_CODLOC)
    VALUES (0         , 'ESTELA'  , 'MARTÍNEZ', '04'      , '03'      )

Como acá le asignamos valores a las columnas ALU_CODDEP y ALU_CODLOC entonces esos son los que se guardan, no los valores por defecto sino los que asignamos en el comando INSERT.

INSERTAR5

Captura 5. (Si haces clic en la imagen la verás más grande)

La columna ALU_CODDEP tiene ’04’ y la columna ALU_CODLOC tiene ’03’ porque esos valores fueron escritos en el comando INSERT y lo que se escribe en el INSERT siempre tiene preferencia. Los valores por defecto solamente se usan cuando no se especifica un valor para la columna.

Conclusión:

Si usamos valores por defecto tenemos estas ventajas:

  1. Nos aseguramos que la columna tenga un valor (o sea, que no se quede en NULL)
  2. Escribimos menos en el comando INSERT (porque el Firebird automáticamente le asigna un valor a la columna)

En muchos casos resulta muy conveniente registrar quien fue el usuario que insertó una fila y también la fecha y la hora en la cual lo hizo. Si usamos valores por defecto entonces no necesitamos recordar escribirlos, el Firebird lo hará por nosotros. Esta facilidad que nos provee el Firebird de inserción automática de valores en las columnas es muy útil, deberíamos aprovecharla.

Artículo relacionado:

El índice del blog Firebird21

Anuncios