Postgresql

INSERT 語句 COPY 等效項

  • March 14, 2018

我想改變這個:

INSERT INTO users (username) VALUES ('JohnDoe');

複製到等價物:

COPY users (username) FROM ('JohnDoe');

複製語句的正確語法是什麼?

要點COPY是從查詢外部接收數據。與您所要求的最接近的語法是

COPY users(username) FROM STDIN;

如果在互動模式下從 psql 解釋器中完成,它會顯示此邀請:

輸入要複製的數據,後跟換行符。以反斜杠和單獨一行的句點或 EOF 信號結束。

如果從非互動式程序完成,則可以使用專用函式來發送數據。它們由程序使用的 PostgreSQL 驅動程序提供。

我找到了一個帶有PROGRAM選項的有效語句:

COPY users (username) FROM PROGRAM 'echo JohnDoe' DELIMITER ',';

有了這個,我可以在不讀取文件或使用 pgsql 的情況下動態設置值。

對於超過 1 行,可以加入多個 echo 命令echo JohDoe & echo JaneDoe

引用自:https://dba.stackexchange.com/questions/200210