2017-08-08 43 views
1

我有一个查询将内容从一个表移动到另一个使用本机php,我使用Codeigniter后我很困惑,使用最适合的查询生成器类我的需求:如何通过使用codeigniter中的查询生成器类来缩短此查询

$this->db->query('INSERT INTO t_pr (ID_PR,no_pr,dept,pr_date,pr_create_date,product_name,qty,uom,Remarks,status_line,status_pr,data_entry) 
SELECT ID_PR,no_pr,dept,pr_date,pr_create_date,product_name,qty,uom,Remarks,status_line,status_pr,data_entry FROM t_pr_temp'); 
+0

此链接可能会有所帮助:https://stackoverflow.com/questions/14550021/codeigniter-active-record-insert-从一表到另一个 –

+0

您所查询的是正确的,因为这【答案】(https://stackoverflow.com/a/45560336/8246373)说也是正确的。你所做的是一种解决方法。据我所知,CI没有这个功能。 –

回答

1

你不能。 ActiveRecord的和的QueryBuilder不支持INSERT...SELECT功能。

用普通的SQL,你总是可以比通过任何抽象层(例如ORM,ActiveRecord的,QueryBuilder的,等)比较多,因为不同的数据库服务器有不同的原生功能。

0

使用笨的QueryBuilder你可能想使用它像这样:

$this->db->insert_batch('t_pr ', $this->db->get('t_pr_temp'));