¿Cuál es el objetivo de los activadores en una base de datos?
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 p>
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
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