Creacion de Triggers de MySQL con las migraciones de Laravel:
En este tutorial, aprenderá cómo trabajar con MySQL en laravel 5.4.Un Trigger (disparador) se define como una acción programada que se almacena en la base de datos y que se ejecuta cuando se produce algún evento a la tabla que esta apuntando.
En laravel, para escribir la consulta Trigger (disparador en el la base de datos) utilizaremos el método DB::unprepared().
Para crear nuestro Trigger primero tenemos que crear nuestro archivo de migración usando el siguientes comando:
En este caso nuestro migración se llamara create_stock_venta_trigger
php artisan make:migration create_stock_venta_trigger
Ahora verá un archivo de migración en el database/migrations/, abra el archivo de migración:
Migración: CreateTrigger
Es este caso crearemos un disparador llamado tr_updStrockVenta asociado a la tabla detalle_venta , para que cuando se inserte a esta tabla, la cantidad del stock de los productos de la tabla articulo disminuya.<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateStockVentaTrigger extends Migration { /** * Run the migrations. * * @return void */ public function up() { // DB::unprepared(' CREATE TRIGGER tr_updStrockVenta AFTER INSERT ON detalle_venta FOR EACH ROW BEGIN UPDATE articulo SET stock=stock-NEW.cantidad WHERE articulo.idarticulo=NEW.idarticulo; END '); } /** * Reverse the migrations. * * @return void */ public function down() { // } }
Ejecutar la migración:
php artisan migrate
Y eso seria todo :)
1 comentarios:
Write comentariosTengo dudas
ReplyEn que parte le dices que si vende 10 al stock le descuente esos 10 vendidos y al revisar el inventario ya veas esos 10 descontados?