Thread: COPY data and referential triggers ...

COPY data and referential triggers ...

From
James Robinson
Date:
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


Re: COPY data and referential triggers ...

From
Tom Lane
Date:
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