繁体   English   中英

使用迁移将触发器添加到表-Laravel 5.1

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM