INSERT INTO contacts_lists (contact_id, list_id)
SELECT contact_id, 67544
FROM plain_contacts
这里我想在sql中使用Copy命令而不是Insert命令来减少插入值的时间。我使用选择操作获取数据。如何使用 postgresql 中的 Copy 命令将其插入表中。你能举个例子吗?或任何其他建议以减少插入值的时间。
INSERT INTO contacts_lists (contact_id, list_id)
SELECT contact_id, 67544
FROM plain_contacts
这里我想在sql中使用Copy命令而不是Insert命令来减少插入值的时间。我使用选择操作获取数据。如何使用 postgresql 中的 Copy 命令将其插入表中。你能举个例子吗?或任何其他建议以减少插入值的时间。
由于您的行已经在数据库中(因为您显然可以SELECT
),因此使用 COPY 不会以任何方式提高速度。
为了能够使用 COPY,您必须首先将值写入文本文件,然后将其读入数据库。但是,如果可以的话SELECT
,写入文本文件是完全不必要的步骤,并且会减慢插入速度,而不是提高插入速度
你的陈述是尽可能快的。唯一可以加快速度的方法(除了购买更快的硬盘)是删除contact_lists
包含该列的任何潜在索引,contact_id
或者list_id
在插入完成后重新创建索引。
我敢肯定,您可以在许多地方找到描述的语法。其中之一是这篇 wiki 文章。
看起来它基本上是:
COPY plain_contacts (contact_id, 67544) TO some_file
和
COPY contacts_lists (contact_id, list_id) FROM some_file
但我只是从谷歌提供的资源中阅读。如果您在特定问题上需要帮助,请尝试并回复。