Crear desencadenadores
Para crear desencadenadores puede utilizar el Diseñador de tablas o el comando CREATE TRIGGER. Puede crear un desencadenador para cada tabla y para cada uno de los tres eventos INSERT, UPDATE y DELETE. En un momento dado, una tabla puede tener un máximo de tres desencadenadores. Los desencadenadores deben devolver un valor verdadero (.T.) o falso (.F.).
Para crear un desencadenador
En la ficha Tabla del Diseñador de tablas, escriba la expresión del desencadenador o el nombre del procedimiento almacenado que la contiene en los cuadros Insertar desencadenador, Actualizar desencadenador, o Eliminar desencadenador.
–O bien–
Utilice el comando CREATE TRIGGER.
Por ejemplo, es posible que cada vez que Comercial Tasmania venda un producto, desee comparar las unidades restantes Units_in_stock
con el nivel del nuevo pedido Reorder_level
y recibir una notificación de si es necesario volver a pedir ese producto. Para esto, puede crear un desencadenador Update para la tabla products
. Cada vez que se venda un producto, el desencadenador Update se activará y el campo Units_in_stock
se actualizará para reflejar los productos restantes.
Para crear el desencadenador, puede especificar updProductsTrigger( )
como desencadenador Update de la tabla products
. Puede agregar un campo a products
, llamado reorder_amount
, para almacenar la cantidad que desea pedir cada vez que realice un nuevo pedido del producto, y crear una tabla reorder
con los campos product_id
y reorder_amount
. A continuación puede agregar este código al procedimiento almacenado:
PROCEDURE updProductsTrigger
IF (units_in_stock+units_on_order) <= reorder_level
INSERT INTO Reorder VALUES(Products.product_id, ;
Products.reorder_amount)
ENDIF
ENDPROC
Puede crear desencadenadores similares para los eventos de inserción o eliminación mediante las cláusulas FOR INSERT o FOR DELETE, respectivamente, en lugar de la cláusula FOR UPDATE. Si intenta crear un desencadenador que ya existe para un evento y una tabla determinados y está activado SET SAFETY, Visual FoxPro le preguntará si desea sobrescribir el desencadenador existente.
Vea también
Uso de desencadenadores | Quitar o eliminar desencadenadores | Trabajar con tablas | Modificar desencadenadores | Modificar la estructura de la tabla