我们可以在 Laravel 迁移中的单个 DB::statement("Query 1; Query 2") 中使用多个 SQL 查询吗?

Posted

技术标签:

【中文标题】我们可以在 Laravel 迁移中的单个 DB::statement("Query 1; Query 2") 中使用多个 SQL 查询吗?【英文标题】:Can we use multiple SQL queries in single DB::statement("Query 1; Query 2") in Laravel migration? 【发布时间】:2021-10-13 23:07:06 【问题描述】:

我正在尝试执行 Laravel 迁移。我在单个 DB::statement() 中有多个 SQL 查询。是否可以执行多个用分号分隔的 SQL 查询?

【问题讨论】:

DB::unprepared() 应该可以解决问题。 【参考方案1】:

可以的

DB::table('name')->insert(['id'=>1, 'var1'=> 'N18.1', 'var2'=>'CKD'],
            ['id'=>2, 'var1'=> 'N181', 'var2'=>'CKD'],
         
    

这是一个例子

【讨论】:

【参考方案2】:

您可以按照文档here 中的说明使用数据库事务

DB::transaction(function () 
    DB::update(// Your Query);
    DB::delete(// Your Query);
);

【讨论】:

以上是关于我们可以在 Laravel 迁移中的单个 DB::statement("Query 1; Query 2") 中使用多个 SQL 查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 4 中通过迁移脚本创建 MySQL 视图

在 Laravel 7.x 中从 DB::select 获取单个值

仅在 Laravel 中使用单个命令创建模型和迁移? [关闭]

如何从 db 中的两个表中路由、获取和显示数据到 laravel 5.2 中的单个网页

laravel5.4使用migration数据库迁移建表

如何在使用 laravel 迁移插入 db 时将字符串附加到给定的输入?