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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论

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