Disparadores de sqlite

Disparadores de sqlite
La reacción siempre se desencadena por alguna acción realizada por cualquier persona, o cosa. SQLITE ARGGERS IS Métodos de respuesta a la base de datos que se ejecutan/invocan automáticamente cada vez que ocurre un incidente de base de datos específico. Por lo tanto, cuando realiza ciertas consultas en la base de datos, existe la posibilidad de que una consulta de activación específica se ejecute como reacción.

Por lo tanto, hemos decidido cubrir el tema de los desencadenantes de SQLite en Ubuntu 20.04 mientras usa la biblioteca C SQLite de la base de datos SQL. Comencemos con la apertura de una terminal de Ubuntu 20.04. Debe comenzar con el Ctrl+Alt+T, ya que tenemos que hacer la mayor parte de nuestro trabajo dentro de él. Dentro del terminal de shell, debe probar las instrucciones de actualización y actualización combinadas con el paquete APT para que su sistema actualice, esté libre de errores y actualice sus paquetes.

Es posible que encuentre la siguiente salida que se muestra a continuación al final del proceso de actualización y actualización. Avancemos hacia la base de datos SQLite.

Comencemos el paquete C Sqlite de una base de datos dentro de nuestro shell de Ubuntu 20.04 con la ayuda de la palabra clave "sqlite3". El shell de comando para sqlite se generará en su pantalla como se muestra a continuación.

Los disparadores siempre se crean como respuesta a algunas consultas en una base de datos y las consultas se aplican a las tablas. No tenemos tabla en nuestra base de datos en este momento. Entonces, necesitamos crear nuevas tablas. Para aplicar desencadenantes, necesitamos al menos 2 tablas. Por lo tanto, hemos estado creando un nuevo estudiante de tabla con 5 columnas (i.mi., Sid, nombre, rno, marcas y estado.) La columna de nombre y estado es de tipo de texto, mientras que los restos de las columnas son de tipo int o real.

Después de esto, hemos estado creando un nuevo datos de tabla con tres columnas: ID, estado y registro. Esta tabla se utilizará en el momento de invocar desencadenantes. Hemos probado la instrucción de selección que sigue al carácter "*" para obtener los registros de ambas tablas recién creadas (i.mi., Estudiante y datos.) La consulta para ambas tablas muestra que las tablas están vacías.

Create Tabla Student (Sid int Primary Key no Null, nombre de texto no nulo, rno int no nulo,
Marca real, no nulo, texto de estado no nulo);
Crear datos de tabla (id int no nulo, texto de estado no nulo, registrar texto);
Seleccionar * del estudiante;
Seleccionar * de datos;

Insertemos algunos registros dentro de la tabla del estudiante y ver si insertar los registros en esta tabla puede afectar la otra tabla "datos" o no. Por lo tanto, hemos estado probando el inserto en instrucción para agregar un total de 5 registros dentro de las 5 columnas de una tabla (i.mi., ID, nombre, RNO, marcas y estado.) Después de insertar los 5 registros con éxito, hemos estado intentando la instrucción de selección seguido del carácter de asterisco "*" para mostrar todos los registros de una tabla "estudiante". La ejecución de este comando ha presentado los 5 registros en nuestra pantalla de shell de la base de datos SQLite.

Después de eso, tenemos que verificar la tabla de datos si está afectado o no. Entonces, hemos probado la instrucción de selección con el carácter "*" para la tabla de datos también. Hemos descubierto que la tabla todavía está vacía y la inserción de datos dentro de la tabla de estudiantes aún no afecta a los "datos" de la tabla. Avancemos hacia la creación de un gatillo.

Insertar en los valores de estudiante (ID, nombre, RNO, Marcas, Estado) (1, "Tim", 344, 45, "Pase"),
(2, "EMA", 355, 98, "Pase"), (3, "Julia", 349, 22, "Fail"), (4, "John", 335, 47, "Pase"),
(5, "Pablo", 250, 25, "Fail");
Seleccionar * del estudiante;
Seleccionar * de datos;

Por lo tanto, crearemos un nuevo desencadenante para que la inserción de los registros en una tabla afecte a la otra. Por lo tanto, crearemos un disparador de inserción en la tabla de estudiantes, de modo que el uso de la instrucción Crear activador en el shell SQLite sea seguido por el nombre de un desencadenante que se creará (i.mi., "Yo registro").

Después del nombre de un disparador, debe usar la palabra clave "después" junto con el tipo de consulta para el cual se ejecutará este disparador (i.mi., Insertar, eliminar, actualizar, etc.) Entonces, hemos estado utilizando la palabra clave "After Insert" para hacer este desencadenante ejecutado después de la ejecución del comando de inserción seguido de la cláusula "ON" junto con el nombre de una tabla en la que se aplicará este desencadenante (I.mi., en la mesa de los estudiantes.) La condición de activación comenzará con el "comienzo" y se detendrá con la palabra clave "fin".

Dentro de ambas palabras clave, escribiremos nuestra declaración de activación que se invocará después de la ejecución de una consulta de inserción específica. El disparador contiene una consulta de inserción para agregar la entrada dentro de la tabla de datos en la ejecución de la instrucción de inserción para la tabla del estudiante. La columna "Rid" y "Estado" de la tabla de datos utilizarán los valores de la tabla del estudiante según la palabra clave "Nuevo" seguido de los nombres de la columna de una tabla de estudiantes (i.mi. nuevo.ID, nuevo.ESTADO.) El registro de columna de la tabla de datos se asignará con el valor "Registro insertado" como se muestra.

Crear disparador i_log después de insertar en el estudiante
COMENZAR
Insertar en los valores de datos (Rid, Estado, Registro) (Nuevo.ID, nuevo.Estado, "registro insertado");
FIN;

El activador "I_log" se ha creado con éxito en la base de datos SQLite y está listo para su uso. Insertaremos algunos registros dentro de la tabla de estudiantes para que el gatillo se ejecute automáticamente en el uso del inserto en instrucción. Después de la ejecución del comando de inserción, hemos probado la consulta de selección para ver los registros de la tabla del estudiante. Ambos nuevos registros se han agregado a esta tabla. Después de esto, hemos intentado obtener los registros de una tabla de datos utilizando la instrucción Seleccionar. Esta vez, la tabla de datos también muestra 2 entradas que están siendo agregadas por el disparador automático "I_log" en la consulta de inserción para la tabla de estudiantes.

Insertar en los valores de estudiante (ID, nombre, RNO, Marcas, Estado) (6, "Bryan", 256, 78, "Pase"),
(7, "Taylor", 441, 64, "pase");
Seleccionar * del estudiante;
Seleccionar * de datos;

Conclusión:

Esto estaba en el uso de desencadenantes para realizar una consulta específica sobre la ejecución de otra consulta en la base de datos SQLite. Hemos realizado el disparador de instrucciones de inserción en este artículo. Todos los pasos se describen claramente en detalle.