📄 copy2.sql
字号:
CREATE TABLE x ( a serial, b int, c text not null default 'stuff', d text, e text) WITH OIDS;CREATE FUNCTION fn_x_before () RETURNS TRIGGER AS ' BEGIN NEW.e := ''before trigger fired''::text; return NEW; END;' language 'plpgsql';CREATE FUNCTION fn_x_after () RETURNS TRIGGER AS ' BEGIN UPDATE x set e=''after trigger fired'' where c=''stuff''; return NULL; END;' language 'plpgsql';CREATE TRIGGER trg_x_after AFTER INSERT ON xFOR EACH ROW EXECUTE PROCEDURE fn_x_after();CREATE TRIGGER trg_x_before BEFORE INSERT ON xFOR EACH ROW EXECUTE PROCEDURE fn_x_before();COPY x (a, b, c, d, e) from stdin;9999 \N \\N \NN \N10000 21 31 41 51\.COPY x (b, d) from stdin;1 test_1\.COPY x (b, d) from stdin;2 test_23 test_34 test_45 test_5\.COPY x (a, b, c, d, e) from stdin;10001 22 32 42 5210002 23 33 43 5310003 24 34 44 5410004 25 35 45 5510005 26 36 46 56\.-- non-existent column in column list: should failCOPY x (xyz) from stdin;-- too many columns in column list: should failCOPY x (a, b, c, d, e, d, c) from stdin;-- missing data: should failCOPY x from stdin;\.COPY x from stdin;2000 230 23 23\.COPY x from stdin;2001 231 \N \N\.-- extra data: should failCOPY x from stdin;2002 232 40 50 60 70 80\.-- various COPY options: delimiters, oids, NULL stringCOPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';500000,x,45,80,90500001,x,\x,\\x,\\\x500002,x,\,,\\\,,\\\.COPY x from stdin WITH DELIMITER AS ';' NULL AS '';3000;;c;;\.COPY x from stdin WITH DELIMITER AS ':' NULL AS E'\\X';4000:\X:C:\X:\X4001:1:empty::4002:2:null:\X:\X4003:3:Backslash:\\:\\4004:4:BackslashX:\\X:\\X4005:5:N:\N:\N4006:6:BackslashN:\\N:\\N4007:7:XX:\XX:\XX4008:8:Delimiter:\::\:\.-- check results of copy inSELECT * FROM x;-- COPY w/ oids on a table w/o oids should failCREATE TABLE no_oids ( a int, b int) WITHOUT OIDS;INSERT INTO no_oids (a, b) VALUES (5, 10);INSERT INTO no_oids (a, b) VALUES (20, 30);-- should failCOPY no_oids FROM stdin WITH OIDS;COPY no_oids TO stdout WITH OIDS;-- check copy outCOPY x TO stdout;COPY x (c, e) TO stdout;COPY x (b, e) TO stdout WITH NULL 'I''m null';CREATE TABLE y ( col1 text, col2 text);INSERT INTO y VALUES ('Jackson, Sam', E'\\h');INSERT INTO y VALUES ('It is "perfect".',E'\t');INSERT INTO y VALUES ('', NULL);COPY y TO stdout WITH CSV;COPY y TO stdout WITH CSV QUOTE '''' DELIMITER '|';COPY y TO stdout WITH CSV FORCE QUOTE col2 ESCAPE E'\\';--test that we read consecutive LFs properlyCREATE TEMP TABLE testnl (a int, b text, c int);COPY testnl FROM stdin CSV;1,"a field with two LFsinside",2\.-- test end of copy markerCREATE TEMP TABLE testeoc (a text);COPY testeoc FROM stdin CSV;a\.\.bc\.d"\."\.COPY testeoc TO stdout CSV;DROP TABLE x, y;DROP FUNCTION fn_x_before();DROP FUNCTION fn_x_after();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -