Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuál es el objetivo de los activadores en una base de datos?

¿Cuál es el objetivo de los activadores en una base de datos?

En pocas palabras, es un desencadenante de eventos.

Por ejemplo, ha insertado y eliminado una tabla en la base de datos y desea que el programa realice automáticamente algún otro trabajo cuando esté realizando o a punto de realizar o completar esta operación. para verificar la inserción de datos o el número total de datos eliminados para hacer algunas estadísticas.

Puedes escribir un cheque antes de la inserción o un recuento después de la eliminación en tu propio programa. El problema con esto es que tienes que escribir todo este código cuando quieres realizar las inserciones y eliminaciones, y es fácil pasarlo por alto.

Los disparadores son diferentes. Puede definir un disparador en una determinada operación. Por ejemplo, establezca la definición del proceso de inserción de cheques como el disparador previo y la definición de estadísticas como el disparador posterior. insertar y al eliminar, el programa de base de datos completará automáticamente estas tareas por usted.

¿Cuáles son los principales efectos? Creo

El primero es la integridad (para evitar omisiones en su propia programación),

El segundo es la simplicidad,

El tercero es el programa de base de datos (como como Oracle) La eficiencia de hacer el trabajo en lugar de hacerlo mediante su propio programa.

Aquí tienes algunos tutoriales que realmente tienen sentido. Puede utilizar algunos de los ejemplos de bases de datos mencionados, escribir una base de datos propia y probarla.

--------- ---------- ---------- -

I Introducción a los desencadenantes

Un disparador es un procedimiento almacenado especial que desencadena la ejecución de datos en una tabla específica cuando se inserta, elimina o modifica.

Es más sofisticado y complejo que la funcionalidad estándar de la base de datos.

Capacidades de control de datos. Los activadores de bases de datos tienen las siguientes capacidades:

* Seguridad. A los usuarios se les pueden otorgar ciertos derechos para operar la base de datos según los valores de la base de datos

.

# Las operaciones del usuario se pueden restringir según el tiempo, como prohibir la modificación de los datos de la base de datos después de salir del trabajo y en días festivos.

# Las operaciones del usuario se pueden restringir según los datos de la base de datos; por ejemplo, los precios de las acciones no pueden aumentar más de 10 a la vez.

* Auditoría. Puede realizar un seguimiento de las acciones del usuario en la base de datos.

#Auditar declaraciones de usuarios que operan la base de datos.

# Escribe las actualizaciones de los usuarios en la base de datos en la tabla de auditoría.

# Implementar reglas complejas de integridad de datos.

# Realizar controles y restricciones de integridad de datos no estándar. Los desencadenantes pueden generar restricciones más complejas que las reglas

. A diferencia de las reglas, los activadores pueden hacer referencia a columnas u objetos de base de datos

. Por ejemplo, un disparador puede salir de cualquier futuro que intente consumir más que su margen.

# Proporcionar valores predeterminados de variables.

* Aplicar reglas de integridad complejas y no estándar relacionadas con bases de datos. Los activadores realizan actualizaciones en cascada de tablas relacionadas en la base de datos

. Por ejemplo, un activador de eliminación

en la columna código_autor de la tabla de autenticación provoca la eliminación correspondiente de filas coincidentes en otras tablas.

# Al modificar o eliminar, modifique en cascada o elimine filas coincidentes en otras tablas.

# Establezca las filas coincidentes en otras tablas en NULL al modificar o eliminar.

# Establece la cascada de filas coincidentes en otras tablas al valor predeterminado al modificar o eliminar.

# Los activadores pueden rechazar o revertir cambios que comprometan la integridad relacionada, cancelando transacciones que intentan

calcular cómo realizar actualizaciones de datos. Este tipo de activador funciona cuando una clave externa insertada no coincide con su clave principal

. Por ejemplo, puede generar un activador de inserción en la columna books.author_code y revertir la inserción si el nuevo valor no coincide con el valor de la columna autores.author_code.

* Sincronizar los datos de la tabla en replicación en tiempo real.

* Calcula automáticamente los valores de los datos y realiza un procesamiento específico

cuando los valores de los datos cumplen requisitos específicos. Por ejemplo, si la cuenta de una empresa cae por debajo de $50 000, envíe inmediatamente datos de alerta al tesorero

.

Existen ciertas diferencias entre los activadores de bases de datos ORACLE y SYBASE. A continuación se describirán respectivamente

las funciones y métodos de escritura de estos dos activadores de bases de datos.

Dos activadores ORACLE

La sintaxis para que ORACLE genere activadores de bases de datos es:

crear [o reemplazar] activador nombre del activador hora del activador evento activador

p>

en el nombre de la tabla

[para cada fila]

instrucción pl/sql

donde:

Nombre del activador: el nombre del objeto activador. Dado que la base de datos ejecuta automáticamente los activadores

el nombre es solo un nombre y no tiene ningún propósito sustancial.

Tiempo de disparo: Especifica el tiempo de ejecución del disparador. El valor puede ser:

antes --- significa que el disparador se ejecuta antes de la operación de la base de datos;

después --- significa que el disparador se ejecuta después de la operación de la base de datos.

Evento desencadenante: indica la operación de la base de datos que activa este activador:

Insertar: la inserción de la base de datos activa este activador

Actualizar: la modificación de la base de datos activa este activador;

Eliminar: este activador se activa al eliminar la base de datos.

Nombre de la tabla: la tabla donde se encuentra el disparador de la base de datos.

para cada fila: El disparador se ejecuta una vez para cada fila de la tabla. Sin esta

opción, el disparador se ejecuta solo una vez para toda la tabla.

Ejemplo: el siguiente activador se activa antes de actualizar las autenticaciones de la tabla para no permitir modificaciones de la tabla los

fines de semana:

Antes de insertar, actualizar o eliminar toda la tabla/ / Antes de crear el activador auth_secure

en auths

comenzar

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR (-20600, 'No se pueden modificar las autenticaciones de tablas los fines de semana');

end if

end

Tres activadores de base de datos SYBASE

Los disparadores de la base de datos SYBASE funcionan de manera muy similar a ORACLE, con solo diferencias menores

La sintaxis para generar disparadores en SYBASE es:

CREATE TRIGGER Nombre del disparador

ON Nombre de la tabla

PARA INSERTAR, ACTUALIZAR, ELIMINAR

COMO

Declaración_SQL |

PARA INSERTAR, ACTUALIZAR

AS

IF UPDATE(column_name) [AND|OR UPDATE(column_name)]...

SQL_statements

La cláusula FOR anterior se utiliza para especificar qué comandos de actualización de datos en el disparador activarán el

disparador.

La cláusula IF UPDATE verifica el tipo de operación en la columna especificada y se pueden especificar varias columnas en la cláusula IF UPDATE

.

A diferencia de ORACLE, los disparadores se ejecutan solo una vez para cada declaración SQL. Los activadores

se ejecutan inmediatamente después de que se completa la declaración de actualización de datos. Los activadores y la declaración que inicia el activador se tratan como una transacción y la transacción se puede revertir en el activador.

A continuación se muestra un ejemplo de cómo escribir un disparador SYBASE.

crear disparador para insertar_libros

en libros

para insertar

como

si (seleccione recuento (*)) de auths, insertado

donde auths.author_code=insert.author_code)! =@@rowcount

comenzar

Transacción de reversión

print "El valor de la columna código_autor en la tabla de libros no existe en la tabla de autenticación".

Fin