[英]Add triggers to table using migrations - Laravel 5.1
我已经看到了这个问题的一些答案,但都没有用,而且都没有针对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
(它完成而没有任何错误)之后,触发器没有添加到表中。 任何想法?
谢谢 :-)
这对我来说是这样的:
/**
* 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
');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.