Latest web development tutorials

SQLite gatillo

trigger SQLite es una función de devolución de llamada, se ejecutará automáticamente cuando se produce el evento de base de datos llamada / especificado. Los siguientes son los principales puntos de la SQLite SQLite de disparo:Disparo (Trigger) es la función de devolución de llamada de la base de datos, se ejecutará automáticamente / llamada cuando se produce un evento de base de datos especificada.Los siguientes son los principales puntos desencadenantes SQLite (gatillo) de:

  • SQLite disparadores (trigger) se inicia se pueden especificar en el momento de la ocurrencia de un tablas de bases de datos específicas DELETE, INSERT o UPDATE o activan cuando se produce una o más columnas especificadas de una actualización de la tabla.

  • SQLite sólo es compatible con activadores FOR EACH ROW (Trigger), no para cada desencadenantes declaración (Trigger). Por lo tanto, la autorización explicitará PARA CADA FILA es opcional.

  • CUANDO (Trigger) la acción cláusula y el gatillo se puede acceder mediante un formulariode nombre NEW.column y OLD.column-nombre dereferencias insertados, eliminados o actualizados elementos de fila, columna nombre se asocia con el gatillo de las columnas de las tablas nombre.

  • CUANDO cláusula, si se proporciona, es cierto sólo para el CUANDO cláusula especifica las filas para ejecutar sentencias SQL. Si ninguna cláusula cuando se ejecuta sentencias SQL para todas las filas.

  • Después de la ejecución de la acción de disparo ANTES o DESPUES palabra clave determina si la acción de disparo, se inserta la decisión en las líneas asociadas, o antes de borrar o modificar.

  • Cuando la tabla asociada con el gatillo borrado eliminar automáticamente de disparo (Trigger).

  • Para modificar la tabla debe existir en la misma base de datos como el gatillo está unido tablas o vistas, y debe usar sólo elnombre de la tabla, en lugar database.tablename.

  • Una función especial RAISE SQL () se puede utilizar para desencadenar una excepción dentro del programa.

gramática

Crear undisparador (Trigger) La sintaxis básica es la siguiente:

CREATE TRIGGER trigger_name [ANTES | DESPUÉS] event_name 
EN nombre_tabla
COMIENZO
 - La lógica de disparo va aquí ....
FIN;

Aquí, event_name puede ser mencionado en la tabla nombre_tabladeINSERT, DELETE y lasoperaciones de base de datos ACTUALIZACIÓN. Opcionalmente, puede especificar PARA CADA FILA después de que el nombre de la tabla.

Se establecen las siguientes en la operación de actualización en una o más tablas en las columnas crean un disparador (Trigger) sintaxis:

CREATE TRIGGER trigger_name [ANTES | DESPUÉS] ACTUALIZACIÓN DE COLUMN_NAME 
EN nombre_tabla
COMIENZO
 - La lógica de disparo va aquí ....
FIN;

Ejemplos

Supongamos una situación en la que queremos insertar en la tabla recién creada EMPRESA (si ya existe, eliminar la re-creado) en cada una de las pruebas de auditoría de mantenimiento de registros:

sqlite> CREAR EMPRESA TABLA (
   ID INT PRIMARY KEY NOT NULL,
   NOMBRE DE TEXTO NO NULO,
   EDAD INT NOT NULL,
   CHAR DIRECCIÓN (50),
   VERDADERO SALARIO
);

Con el fin de mantener las pruebas de auditoría, vamos a crear una nueva tabla llamada AUDITORÍA. Siempre mesa EMPRESA cuenta con una nueva entrada de registro, se insertará el mensaje de registro:

sqlite> CREAR TABLA DE AUDITORÍA (
    EMP_ID INT NOT NULL,
    ENTRY_DATE TEXTO NO NULO
);

Aquí, ID es AUDITORÍA ID de registro, EMP_ID el ID de la tabla de Empresa, Fecha mantendrá marca de tiempo se crea cuando se registra EMPRESA. Así pues, ahora vamos a crear un disparador en la tabla EMPRESA de la siguiente manera:

sqlite> CREATE TRIGGER DESPUES audit_log INSERT 
EN EMPRESA
COMIENZO
   INSERT INTO AUDITORÍA (EMP_ID, ENTRY_DATE) VALUES (new.ID, fecha y hora ( "ahora"));
FIN;

Ahora vamos a empezar a insertar un registro en la tabla EMPRESA, esto dará lugar a la creación de una tabla de auditoría registro de auditoría. Por lo tanto, vamos a crear un registro en la tabla EMPRESA, de la siguiente manera:

sqlite> INSERT INTO EMPRESA (ID, NOMBRE, edad, dirección, SALARIO)
VALUES (1, 'Paul', 32, 'California', 20000.00);

Esto creará un registro en la Empresa siguiente tabla:

ID NOMBRE EDAD DIRECCIÓN SALARIO
---------- ---------- ---------- ---------- ----------
1 Pablo California 32 20000.0

Al mismo tiempo, vamos a crear un registro en la tabla de auditoría. Este disco es el resultado de un disparador, que es el gatillo insertamos operaciones sobre tablas empresa creada (Trigger). Del mismo modo, pueden crear desencadenantes en la actualización y supresión (Trigger).

EMP_ID ENTRY_DATE
---------- -------------------
12013-04-05 06:26:00

Listas de disparo (trigger)

Se pueden listar todos los disparadores de la tablasqlite_master, de la siguiente manera:

sqlite> SELECT nombre FROM sqlite_master
DONDE type = "disparador";

La declaración SQLite anterior aparece sólo una entrada, de la siguiente manera:

nombre
----------
audit_log

Si desea listar el gatillo en una tabla específica, utilice la cláusula AND para unir tablas fueron los siguientes:

sqlite> SELECT nombre FROM sqlite_master
DONDE type = "disparador" Y nombre_de_tabla = "compañía";

La declaración SQLite anterior aparece sólo una entrada, de la siguiente manera:

nombre
----------
audit_log

Retire el gatillo (trigger)

El siguiente es un comando DROP se puede utilizar para eliminar el gatillo existente:

sqlite> DROP TRIGGER trigger_name;