2015-11-05 59 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 
    '); 
}