Mostrando entradas con la etiqueta Creacion de Triggers de MySQL con las migraciones de Laravel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Creacion de Triggers de MySQL con las migraciones de Laravel. Mostrar todas las entradas

viernes, 26 de mayo de 2017



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 :)
Category: articles