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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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年前 评论