MySQL usa disparadores

Prólogo: MySQL5 o posterior admite la función de activación

Qué es un desencadenante: si desea que una declaración se ejecute automáticamente cuando se produce un evento, debe usar un desencadenador. Específicamente, un desencadenante es una declaración de MySQL que MySQL ejecuta automáticamente en respuesta a cualquiera de las siguientes declaraciones (ubicadas en BEGIN y END) Un conjunto de declaraciones entre declaraciones): DELETE, INSERT, UPDATE, otras declaraciones MySQL no admiten disparadores

Desencadenador de tipo INSERT: active el desencadenador al insertar una determinada fila, puede desencadenarse mediante la instrucción INSERT .
Tipo de ACTUALIZACIÓN: El activador se activa cuando se cambia una determinada fila, y puede ser activado por la instrucción ACTUALIZAR .
Tipo de DELETE: El activador se activa cuando se elimina una determinada fila, que puede ser activada por la instrucción DELETE
 

Primero, crea un disparador

El disparador se crea con la instrucción CREATE TRIGGER. Aquí hay un ejemplo simple

Cada activador corresponde a una tabla, y cada tabla admite hasta 6 activadores (antes y después de BORRAR, INSERTAR y ACTUALIZAR)

CREATE TRIGGER newproduct AFTER INSERT ON orders -- 创建一个触发器对应orders表
FOR EACH ROW -- 这句话在mysql是固定的
BEGIN
-- 触发器sql语句
END;

Al mismo tiempo, use Navicat para MySQL para crear disparadores como se muestra en la figura a continuación, pero se recomienda usar operaciones de declaración. Primero encuentre la tabla correspondiente al activador que necesita crear en Navicat para MySQL, haga clic con el botón derecho en "Design Table" y luego cree el activador.

Segundo, elimine el disparador

DROP TRIGGER newproduct;

Los activadores no pueden actualizarse ni sobrescribirse. Para modificar un activador, primero debe eliminarlo y luego volver a crearlo.

 

Tercero, usa el gatillo

     1. INSERTAR gatillo ,

       Cada vez que se agrega un pedido, el pedido se agregará a la lista de precios totales para uso futuro. NUEVO indica el valor recién insertado en los pedidos

CREATE TRIGGER ordersinsert AFTER INSERT ON orders
FOR EACH ROW #这句话在mysql是固定的
BEGIN
-- 触发器sql语句
INSERT INTO ordertotals(order_num, total)  
values(NEW.order_num, 0);  
END;

 

156 artículos originales publicados · Me gustaron 34 · Visitas 150,000+

Supongo que te gusta

Origin blog.csdn.net/bbj12345678/article/details/105612367
Recomendado
Clasificación