A veces, los valores que una vez se ingresaron en una columna deben ser siempre los mismos, son estáticos, no deben cambiarse.

En general los códigos tienen esta particularidad, deben ser fijos. Una vez asignados, ya no deberían ser modificados.

Sin embargo, podríamos olvidarnos de deshabilitar esa posibilidad en nuestro programa, el que ejecutan los usuarios y que escribimos en un lenguaje de programación: Visual FoxPro, Visual Basic, Delphi, C, C++, Java, etc.

Afortunadamente con Firebird es muy fácil evitar que cambien el valor de una columna, como podemos ver a continuación:

SET TERM ^ ;

CREATE TRIGGER CATEG_ACTIVO_BU FOR CATEG_ACTIVO
   ACTIVE BEFORE UPDATE
   POSITION 1
AS
BEGIN

   NEW.CAT_CODIGO = OLD.CAT_CODIGO;

END^

SET TERM ; ^

Al tener un trigger BEFORE UPDATE (en castellano: antes de actualizar) que le asigne a una columna el mismo valor que ya tenía esa columna nos aseguramos que jamás pueda cambiarse su valor. No importa cuantas veces lo intenten, no conseguirán cambiarlo.

Esta es una buena medida de seguridad, para evitar que por equivocación o por ignorancia, cambien lo que no debería ser cambiado.

Artículo relacionado:

El índice del blog Firebird21