INSERT INTO contacts_lists (contact_id, list_id)
SELECT contact_id, 67544
FROM plain_contacts
这里我想在sql中使用Copy命令而不是Insert命令来减少插入值的时间。我使用select操作获取数据。如何使用postgresql中的Copy命令将其插入表中。你能举个例子吗?或任何其他建议,以减少插入值的时间。
答案 0 :(得分:2)
由于您的行已经在数据库中(因为您显然可以SELECT
),因此使用COPY不会以任何方式提高速度。
为了能够使用COPY,您必须先将值写入文本文件,然后将其读入数据库。但是如果你可以SELECT
,那么写一个文本文件是一个完全不必要的步骤,会减慢你的插入速度,而不是提高它的速度
你的陈述和它一样快。唯一可以加速它(除了购买更快的硬盘)是删除包含列contact_lists
或contact_id
的{{1}}上的任何潜在索引并重新创建一次索引插入完成。
答案 1 :(得分:1)
我确定你可以在很多地方找到所描述的语法。其中之一是this wiki article。
看起来基本上是:
COPY plain_contacts (contact_id, 67544) TO some_file
和
COPY contacts_lists (contact_id, list_id) FROM some_file
但我只是在阅读Google出现的资源。如果您需要有关特定问题的帮助,请尝试并回复。