如何在迁移中使用内连接时更新 Laravel 数据库
How to update Laravel database while using inner join in a migration
我有以下 SQL 语句,它直接在 SQL 控制台中工作,但我需要在 Laravel 迁移中进行。
Short story, I am trying to replace the current value of columnA on
tableA with id of the corresponding value in columnB of the tableB.
表结构如下:
tableA:
id: int(11)
columnA: varchar(191)
tableB:
id: int(11)
columnB: varchar(191)
正在 SQL 控制台上运行的 SQL 语句:
UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA
我认为它正在使用原始语句:
DB::raw(UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA);
现在我正忙于创建 Laravel 迁移,当我尝试 运行 迁移时,没有任何反应。
尝试使用 DB::statement
而不是 DB::raw
,第二个不 运行 查询。
我有以下 SQL 语句,它直接在 SQL 控制台中工作,但我需要在 Laravel 迁移中进行。
Short story, I am trying to replace the current value of columnA on tableA with id of the corresponding value in columnB of the tableB.
表结构如下:
tableA:
id: int(11)
columnA: varchar(191)
tableB:
id: int(11)
columnB: varchar(191)
正在 SQL 控制台上运行的 SQL 语句:
UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA
我认为它正在使用原始语句:
DB::raw(UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA);
现在我正忙于创建 Laravel 迁移,当我尝试 运行 迁移时,没有任何反应。
尝试使用 DB::statement
而不是 DB::raw
,第二个不 运行 查询。