Импорт текстового массива CSV в PostgreSQL 9.2
У меня есть данные, что-то вроде этого:
Akhoond,1,Akhoond,"{""Ахунд"", ""Akhwan""}",0
импорт pgAdmin отклоняет это. В каком формате должен быть текст[] в CSV?
Я также попытался это:
Akhoond, 1, Akhoond, " {Akhund, Akhwan}", 0
Вот таблица create:
CREATE TABLE private."Titles"
(
"Abbrev" text NOT NULL,
"LangID" smallint NOT NULL REFERENCES private."Languages" ("LangID"),
"Full" text NOT NULL,
"Alt" text[],
"Affix" bit
)
WITH (
OIDS=FALSE
);
ALTER TABLE private."Titles" ADD PRIMARY KEY ("Abbrev", "LangID");
CREATE INDEX ix_titles_alt ON private."Titles" USING GIN ("Alt");
ALTER TABLE private."Titles"
OWNER TO postgres;
1 ответов
лучший способ выяснить это-создать таблицу с нужными значениями и COPY ... TO STDOUT
посмотреть:
craig=> CREATE TABLE copyarray(a text, b integer, c text[], d integer);
CREATE TABLE
craig=> insert into copyarray(a,b,c,d) values ('Akhoond',1,ARRAY['Akhund','Akhwan'],0);
INSERT 0 1
craig=> insert into copyarray(a,b,c,d) values ('Akhoond',1,ARRAY['blah with spaces','blah,with,commas''and"quotes'],0);
INSERT 0 1
craig=> \copy copyarray TO stdout WITH (FORMAT CSV)
Akhoond,1,"{Akhund,Akhwan}",0
Akhoond,1,"{""blah with spaces"",""blah,with,commas'and\""quotes""}",0
похоже "{Akhund,Akhwan}"
- это хорошо. Обратите внимание на второй пример, который я добавил, показывающий, как обрабатывать запятые, кавычки в тексте массива.
это работает с psql ; Если не работа с PgAdmin-III тогда я бы предложил использовать psql
и \copy
.