不要复制postgres中的所有行

时间:2017-04-28 09:39:55

标签: postgresql copy

我想将一些数据从一个表复制到另一个表但我不想复制所有行,只需要复制几行(就像前100行一样)。

我没有在COPY命令中找到一个选项。 这样才有可能吗? 提前谢谢。

3 个答案:

答案 0 :(得分:3)

你看起来不太努力。

https://www.postgresql.org/docs/current/static/sql-copy.html

  

要将名称以“A”开头的国家/地区复制到文件中:

     

COPY(SELECT * FROM country WHERE country_name LIKE'A%')TO   '/usr1/proj/bray/sql/a_list_countries.copy';

所以你想要COPY (SELECT ... LIMIT 100)

我假设您要在数据库之间或通过中间文件或其他内容进行复制,否则您只想使用INSERT ... SELECT,如另一个答案中所示。

答案 1 :(得分:0)

您可以使用

INSERT INTO table2(col_list) 
SELECT col_list FROM table1 WHERE condtitions ORDER BY order_col_list LIMIT X;

答案 2 :(得分:0)

您可以在复制(SELECT ...LIMIT) to时限制行数,但不能限制COPY from。你没有在docs中找到这样的选项,因为没有这样的选项。

使用insert into ... select from ... limit 100代替