批量插入同一数据库中的表之间

时间:2013-06-13 18:18:14

标签: sql postgresql bulkinsert sqlbulkcopy

在表A中插入具有相同结构的表B的最快方法:

INSERT INTO A
SELECT * FROM B

我无法重命名表,因为在表A中有索引,当执行查询时,如果没有读取目录并且创建动态脚本以将表B修改为等于表A,则无法知道。此外,在表A上在它上面有一些观点,而不是很难删除。

我无法使用COPY命令进行复制,然后使用COPY FROM,因为数据库用户对文件和目录没有权限。

有办法做COPY A FROM (SELECT * FROM B)吗?

PostgreSQL版本9.2。

1 个答案:

答案 0 :(得分:0)

您的问题说明了正确的答案:

INSERT INTO A
SELECT * FROM B;

这就是你所需要的一切。

现在,如果A尚不存在,您也可以这样做:

CREATE TABLE A (LIKE B INCLUDING ALL);
INSERT INTO A SELECT * FROM B;