Если я правильно понимаю ваш вопрос, вы можете прочитать одну строку (ы) в временную таблицу и использовать его для вставки:
DROP SCHEMA str CASCADE;
CREATE SCHEMA str;
SET search_path='str';
CREATE TABLE strings
(string_id INTEGER PRIMARY KEY
, the_string varchar
);
CREATE TEMP TABLE string_only
(the_string varchar
);
COPY string_only(the_string)
FROM '/tmp/string'
;
INSERT INTO strings(string_id,the_string)
SELECT 5, t.the_string
FROM string_only t
;
SELECT * FROM strings;
Результат:
NOTICE: drop cascades to table str.strings
DROP SCHEMA
CREATE SCHEMA
SET
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index "strings_pkey" for table "strings"
CREATE TABLE
CREATE TABLE
COPY 1
INSERT 0 1
string_id | the_string
-----------+---------------------
5 | this is the content
(1 row)
Пожалуйста, обратите внимание, что файл «рассматривается» сервером, поскольку сервер видит файловую систему. «Текущая директория» с этой точки зрения, вероятно, $ PG_DATA, но вы ничего не должны принимать и укажите полный путь, , который должен быть загружен и доступен для чтения сервером. Вот почему я использовал «/ tmp», который небезопасен (но отличная точка rendez-vous ;-)
Файл должен содержать только одну строку = строка = столбец = поле? – wildplasser
Да, файл содержит только одну строку, содержащую ничего, кроме этой строки. – user905747
Хорошо, см. Ответ. (Я догадался) – wildplasser