问下,如何将一张表里面的某一条记录复制到另一张表里面?

情况是这样的,
我用php从一张表读出一条数据,然后这条数据有很多字段与另一张表是相同的,也有一部分是不同的,
然后我希望把读出来的这条数据,再加上一些其他数据,保存到另一张表里面?
我想问下有没有简单的方法,我现在是先构成数组,然后插入,感觉太麻烦了?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

最低级的方法 在 Origin model 内增加一个方法叫做 CovertToForwardModel 返回一个构建好的 ForwardModel 对象,然后你 ForwardModel 直接 save 不就好了。

稍微高级点的方案 使用 Collection 一次处理多个、

最高级的方法 让 DBA 去做

1年前 评论
donggan (楼主) 1年前
陈先生 (作者) 1年前
sanders

我理解一下楼主的意思,是不是想少些点代码?

transform(ModelA $model): ModelB
{
    // 从这里获取你要添加的数据赋值给 $yourValueA
    return ModelB::create(['merge_field_a' => $yourValueA, ...$model->only(['field_a','field_b'])]);
}
1年前 评论
foobar

如果想加入的一些东西是固定的,可以用MySQL的insert和select结合,例如:

INSERT INTO tableB (id, field1, field2, field3, field4)
SELECT A.id, A.field1, A.field2, 'other_data1', 'other_data2'
FROM tableA A;

这样最快最简单

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!