Ответ 1
Возникла проблема с именами классов.
Правильное имя класса может помочь ИЛИ сделать то же, что и я, Копировать рабочий код запуска в блокнот/текст. Удалите старый файл триггера переноса и создайте новый.
Примечание. Кстати, одно и то же решение действительно для Laravel 4.x и Laravel 5.x
В Laravel 4
php artisan migrate:make create_trigger
В Laravel 5
php artisan make:migration create_trigger
После того, как он был сгенерирован, я копирую и вставляю один и тот же код триггера из своего блокнота/текста, и он отлично работает.
Вот окончательный рабочий код для создания триггера с помощью миграции.
он работает как с RAW
, так и с UNPREPARED
.
<?php
use Illuminate\Database\Migrations\Migration;
class CreateTrigger extends Migration {
public function up()
{
DB::unprepared('
CREATE TRIGGER tr_User_Default_Member_Role AFTER INSERT ON `users` FOR EACH ROW
BEGIN
INSERT INTO role_user (`role_id`, `user_id`, `created_at`, `updated_at`)
VALUES (3, NEW.id, now(), null);
END
');
}
public function down()
{
DB::unprepared('DROP TRIGGER `tr_User_Default_Member_Role`');
}
}
Примечание. Это просто пример, демонстрирующий концепцию