How to Add MySQL Trigger from Migration in Laravel?
Sometimes you require to add trigger in your mysql database of laravel. but you think how to create trigger using laravel migration because laravel not provide special function like insertTrigger and something so it problem to create direclty, But laravel DB::unprepared() through we can create trigger for database.
In Following example you can see how to create migration and create trigger code and how to write drop trigger code, so let's do it this way.
Create Migration:
Run the following command to create migration:
php artisan make:migration add_trigger
Migration:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddTrigger extends Migration
{
public function up()
{
DB::unprepared('CREATE TRIGGER add_Item_city AFTER INSERT ON `items` FOR EACH ROW
BEGIN
INSERT INTO `items_city` (`item_id`) VALUES (NEW.id);
END');
}
public function down()
{
DB::unprepared('DROP TRIGGER `add_Item_city`');
}
}
?>
Run Migration:
php artisan migrate
Try this....