COPY data and referential triggers ...

Started by James Robinsonover 21 years ago2 messagesgeneral
Jump to latest
#1James Robinson
jlrobins@socialserve.com

Just a sanity check -- data fed into pg using the

COPY tablename (col1, col2) FROM stdin;
... data
\.

Does not cause referential triggers to fire (i.e. foreign keys), right?
It seems to operate this way, yet I didn't see this mentioned
explicitly in the SQL reference manual page on the COPY command.

----
James Robinson
Socialserve.com

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: James Robinson (#1)
Re: COPY data and referential triggers ...

James Robinson <jlrobins@socialserve.com> writes:

Just a sanity check -- data fed into pg using the
COPY tablename (col1, col2) FROM stdin;
... data
\.

Does not cause referential triggers to fire (i.e. foreign keys), right?

Sure it does.

regression=# create table t1 (f1 int primary key);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
CREATE TABLE
regression=# create table t2 (f1 int references t1, f2 int);
CREATE TABLE
regression=# copy t2(f1,f2) from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.

3 4
\.

ERROR: insert or update on table "t2" violates foreign key constraint "$1"
DETAIL: Key (f1)=(3) is not present in table "t1".

regards, tom lane