2015-11-05 2 views
0

Я видел несколько ответов на этот вопрос, но ни один из них не работает, и ни один из них не было на 5,1Добавить триггеры таблицы с помощью миграции - Laravel 5,1

Это моя миграция:

public function up() 
    { 
     DB::unprepared(' 
      USE `widatdb`; 
      DELIMITER $$ 
      CREATE TRIGGER `topics_AUPD` BEFORE UPDATE ON `topics` FOR EACH ROW 
      BEGIN 
       IF (NEW.abstract <> OLD.abstract) 
       THEN 
        SET NEW.got_updated = 1; 
       END IF; 
      END 
     '); 
    } 

Если я введу синтаксическую ошибку в объявлении триггера, ее ошибка будет показана во время миграции. Но прямо сейчас, после запуска php artisan migrate (который заканчивается без каких-либо ошибок), триггер не добавляется в таблицу. Любая идея?

Спасибо :-)

ответ

2

Вот как это работает для меня:

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    DB::getPdo()->exec(' 
     CREATE TRIGGER `users_BUPD` BEFORE UPDATE ON `users` FOR EACH ROW 
     BEGIN 
      IF (NEW.score <> OLD.score) 
      THEN 
       INSERT INTO `score_history` VALUES(NULL, OLD.id, OLD.score, CURRENT_TIMESTAMP); 
      END IF; 
     END 
    '); 
} 
Смежные вопросы