Un disparador es un procedimiento almacenado especial. Su ejecución no es llamada por un programa ni iniciada manualmente, sino que se activa mediante un evento, como cuando se opera una tabla (insertar, eliminar, actualizar). se activará para su ejecución. Los activadores se utilizan a menudo para imponer restricciones de integridad de datos y reglas comerciales. Los activadores se pueden encontrar en los diccionarios de datos DBA_TRIGGERS y USER_TRIGGERS. Nombre del dominio de base de datos Los activadores pueden consultar otras tablas y pueden contener declaraciones SQL complejas. Se utilizan principalmente para hacer cumplir reglas o requisitos comerciales complejos. Por ejemplo: puede controlar si se permite insertar nuevos pedidos según el estado actual de la cuenta del cliente.
Los activadores también se pueden utilizar para imponer la integridad referencial de modo que cuando se agreguen, actualicen o eliminen filas en varias tablas, se conserven las relaciones definidas entre las tablas. Sin embargo, la mejor manera de hacer cumplir la integridad referencial es definir restricciones de clave primaria y clave externa en las tablas relacionadas. Si utiliza un diagrama de base de datos, puede crear relaciones entre tablas para crear automáticamente restricciones de clave externa.
Sintaxis SQL para crear activadores
DELIMITER |
CREATE TRIGGER `lt; nombredebase de datos; `.`lt; lt; [ ANTES | DESPUÉS ] gt; [ INSERTAR | ELIMINAR ] gt
ON lt;
--hacer algo
END |
Ventajas de los activadores
Los activadores pueden alcanzar niveles a través de tablas relacionadas en la base de datos. ; sin embargo, estos cambios se pueden realizar de manera más eficiente mediante restricciones de integridad referencial en cascada. Los desencadenadores pueden imponer restricciones más complejas que las definidas con restricciones CHECK. A diferencia de las restricciones CHECK, los activadores pueden hacer referencia a columnas en otras tablas. Por ejemplo, un disparador puede usar un SELECT de otra tabla para comparar datos insertados o actualizados, así como realizar otras operaciones, como modificar datos o mostrar mensajes de error definidos por el usuario. Los activadores también pueden evaluar el estado de la tabla antes y después de la modificación de los datos y tomar contramedidas basadas en las diferencias. Múltiples activadores del mismo tipo (INSERT, UPDATE o DELETE) en una tabla permiten que se tomen múltiples respuestas diferentes en respuesta a la misma declaración de modificación.
Compare desencadenantes y restricciones
Las restricciones y los desencadenantes tienen ventajas en situaciones especiales. El principal beneficio de los desencadenadores es que pueden contener una lógica de procesamiento compleja utilizando código Transact-SQL. Por lo tanto, un activador puede admitir todas las características de una restricción, pero no siempre es el mejor enfoque para una característica determinada; La integridad de la entidad siempre debe imponerse en el nivel más bajo a través de índices, que son parte de las restricciones PRIMARY KEY y UNIQUE o se crean independientemente de las restricciones. La integridad del dominio se debe imponer mediante una restricción CHECK, y la integridad referencial (RI) se debe aplicar mediante una restricción FOREIGN KEY, asumiendo que la funcionalidad cumple con los requisitos funcionales de la aplicación. Los desencadenadores son extremadamente útiles cuando la funcionalidad admitida por una restricción no cumple con los requisitos funcionales de la aplicación.
Por ejemplo: a menos que la cláusula REFERENCES defina una operación de referencia en cascada, una restricción FOREIGN KEY solo puede validar un valor de columna con una coincidencia exacta con un valor en otra columna.
Las restricciones CHECK solo pueden validar valores de columna frente a una expresión lógica u otra columna de la misma tabla. Si su aplicación requiere la validación de los valores de las columnas con respecto a una columna de otra tabla, debe utilizar activadores.
Las restricciones solo pueden transmitir información de error a través de mensajes de error estándar del sistema. Si su aplicación requiere (o se beneficia de) información personalizada y un manejo de errores más complejo, debe utilizar activadores.
Los activadores pueden realizar cambios en cascada a través de tablas relacionadas en la base de datos; sin embargo, estos cambios se pueden realizar de manera más eficiente mediante restricciones de integridad referencial en cascada.
Los activadores pueden suprimir o revertir cambios que violan la integridad referencial, cancelando así el intento de modificación de datos. Este tipo de desencadenante puede ocurrir cuando se cambia una clave externa y el nuevo valor no coincide con la clave principal. Por ejemplo, puede crear un activador de inserción en titleauthor.title_id que revierta una inserción si el nuevo valor no coincide con uno de los valores en titles.title_id. Sin embargo, es común utilizar FOREIGN KEY para este propósito.
Si existen restricciones en la tabla de activadores, se verifican después de que se ejecuta el activador INSTEAD OF pero antes de que se ejecute el activador DESPUÉS. Si la restricción se rompe, la operación del disparador EN LUGAR DE se revierte y el disparador DESPUÉS no se ejecuta.
¿Se pueden crear desencadenadores en las vistas? En los Libros en pantalla de SQL Server 6?4, no se dice que no se puedan crear desencadenadores en las vistas, y se indica en la explicación de sintaxis:
El ON de CREATE TRIGGER puede ir seguido de una vista. Sin embargo, este no parece ser el caso, y muchos expertos también dicen que no se pueden crear desencadenantes en las opiniones. También hice una prueba especial y, de hecho, es cierto, no importa si es una vista normal o una vista indexada, no se pueden crear activadores en ella. Haga clic en Detalles, pero aquí está la cuestión: se rechazará la creación de activadores en tablas temporales o del sistema. Comprenda profundamente que la palabra clave FOR de la declaración FOR CREATE TRIGGER puede ir seguida de uno o más INSERT, UPDATE y DELETE, lo que significa que el disparador no se activará en otras circunstancias, incluidas SELECT, TRUNCATE, WRITETEXT y UPDATETEXT. Contenido relacionado Una aplicación interesante Hemos visto que muchos sistemas de registro no pueden cambiar el nombre de usuario después del registro, pero esto lo determina principalmente la aplicación. Si abre directamente la tabla de la base de datos para realizar cambios, también puede cambiar su nombre de usuario en el activador. Al utilizar la reversión, puede darse cuenta inteligentemente de que el nombre de usuario no se puede cambiar... Detalles: cuando falla una declaración interna del disparador... En este caso, la operación de cambio de datos anterior no será válida. Por ejemplo, si se activa un disparador cuando se insertan datos en la tabla y se produce un error de tiempo de ejecución dentro del disparador, se devolverá un valor de error y se rechazará la inserción de datos que se acaba de hacer. Declaraciones que no se pueden usar en desencadenadores La mayoría de las declaraciones T-SQL se pueden usar en desencadenadores, pero las siguientes declaraciones no se pueden usar en desencadenadores.
Sentencias CREATE, tales como: CREAR BASE DE DATOS, CREAR TABLA, CREAR ÍNDICE, etc.
Declaraciones ALTER, tales como: ALTER DATABASE, ALTER TABLE, ALTER INDEX, etc.
Declaraciones DROP, tales como: DROP DATABASE, DROP TABLE, DROP INDEX, etc.
Declaraciones de DISCO, tales como: DISK INIT, DISK RESIZE.
Sentencias LOAD, como por ejemplo: LOAD BASE DE DATOS, LOAD LOG.
Instrucción RESTORE, como por ejemplo: RESTORE DATABASE, RESTORE LOG.
RECONFIGURE
¡La instrucción TRUNCATE TABLE no se puede utilizar en activadores de Sybase!
Utilice los activadores con precaución. Los activadores son potentes y pueden implementar de forma fácil y fiable muchas funciones complejas. ¿Por qué deberían utilizarse con precaución? No hay nada de malo en el disparador en sí, pero nuestro mal uso causará dificultades en el mantenimiento de la base de datos y la aplicación. En las operaciones de bases de datos, podemos implementar operaciones de datos a través de relaciones, activadores, procedimientos almacenados, aplicaciones, etc. Al mismo tiempo, las reglas, restricciones y valores predeterminados también son garantías importantes para garantizar la integridad de los datos. Si confiamos demasiado en los flip-flops, inevitablemente afectará la estructura de la base de datos y aumentará la complejidad de los procedimientos de mantenimiento. [Editar este párrafo] Sustantivo en el campo de los circuitos digitales El nombre científico es "Multivibrador biestable". ". Un flip-flop es un componente electrónico que puede almacenar el estado de un circuito. El más simple es el flip-flop RS que consta de dos puertas NOR, dos entradas y dos salidas (ver imagen). Los más complicados incluyen un flip-flop D con un segmento de reloj (CLK) y un terminal D (datos), que sigue el estado del terminal D cuando el terminal CLK tiene un nivel alto y retiene la señal instantáneamente cuando el terminal CLK llega a ser de nivel bajo. El flip-flop de borde D más comúnmente utilizado es una cascada de dos flip-flops D simples que retienen la señal en el borde inferior del reloj. Se usa ampliamente en componentes electrónicos como contadores, unidades aritméticas y memorias.
La estructura del circuito y la función lógica del flip-flop:
La función lógica se refiere a la relación lógica entre el estado secundario y el estado actual del flip-flop y la entrada. señal en estado estable. Esta relación lógica se puede dar mediante tablas de características, ecuaciones características o diagramas de transición de estados.
Según las diferentes características de las funciones lógicas, los flip-flops se dividen en varios tipos como RS, JK, T y D.
La estructura del circuito se refiere al tipo y combinación de circuitos de compuerta en el circuito.
El flip-flop RS básico, el flip-flop RS síncrono, el flip-flop maestro-esclavo, el flip-flop de borde, etc. se refieren a diferentes formas de estructura de circuito. Debido a las diferentes formas de la estructura del circuito, se producen diferentes características de acción.
Los flip-flops con la misma función lógica se pueden implementar con diferentes estructuras de circuito. Por otro lado, se pueden fabricar flip-flops con diferentes funciones lógicas utilizando la misma estructura de circuito.
Tipos de flip-flops:
Según las diferentes funciones lógicas, se dividen en: flip-flop RS, flip-flop D, flip-flop JK y flip-flop T. fracaso.
Según los diferentes métodos de disparo, se divide en: disparador por nivel, disparador por flanco y disparador maestro-esclavo.
Según las diferentes estructuras del circuito, se divide en: flip-flop RS básico y flip-flop controlado por reloj.
Según los diferentes principios de almacenamiento de datos, se dividen en: disparadores estáticos y disparadores dinámicos.
Según los componentes básicos que constituyen el flip-flop, se divide en: flip-flop bipolar y flip-flop MOS.
Accesorios de iluminación
Se utiliza para encender lámparas de descarga de gas de alta intensidad (H.I.D), y existen muchos modelos ya que las lámparas de descarga de gas de alta intensidad requieren de un alto voltaje para ionizarse. El gas y entra en el plasma al arrancar, estado, por lo tanto, se requiere un generador de alto voltaje como motor de arranque. Este es el disparador. Se han eliminado los primeros disparadores mecánicos. Hoy en día, la mayoría de los disparadores son disparadores electrónicos que utilizan tiristores o diodos de disparo de alto voltaje. Los modelos más utilizados incluyen: el CD-7 de OSRAM, el SI51 SN58 de Philips, el ALK400 de Allen, etc.