Я использую команду COPY FROM
для загрузки данных из файла. Таблица определяется столбцом идентификаторов, который не является частью файла.
CREATE TABLE APP2DBMAP (
FIELD_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,
FIELD_NAME varchar(128) ,
TABLE_NAME varchar(128) ,
COLUMN_NAME varchar(128) ,
CONSTRAINT PK_APP2DBMAP PRIMARY KEY ( FIELD_ID )
);
Я выполнил следующую команду COPY FROM
, файл содержит 3 значения в 1 строке.
copy app2dbmap (field_name, table_name, column_name) from '/opt/NetMgr/data/templ_db.txt' DELIMITER ',' ;
И я получил следующую ошибку:
ERROR: null value in column "field_id" violates not-null constraint
DETAIL: Failing row contains (null, 'aaa', 'bbb', 'ccc').
CONTEXT: COPY app2dbmap, line 1: "'aaa','bbb','ccc'"
Я попытался изменить описание столбца field_id
на serial
, и это сработало.
Я не понимаю, почему это не работает с исходным определением таблицы.
NULL
... а в полеGENERATED BY DEFAULT AS IDENTITY
должно бытьDEFAULT
, а неNULL
... так что вы в принципе не можете сделать это таким образом. - person Flash Thunder   schedule 23.08.2018