You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Anjana Prakash <an...@actian.com> on 2015/12/03 05:55:19 UTC
disable referential integrity constraint in derby
Hi,
Is there an option in derby to temporary turn off referential integrity constraint. This is needed when we do bulk import and post this process we would want
It to be enable.
Thanks,
Anjana.
Re: disable referential integrity constraint in derby
Posted by Rick Hillegas <ri...@gmail.com>.
On 12/2/15 8:55 PM, Anjana Prakash wrote:
>
> Hi,
>
> Is there an option in derby to temporary turn off referential
> integrity constraint. This is needed when we do bulk import and post
> this process we would want
>
> It to be enable.
>
> Thanks,
>
> Anjana.
>
Hi Anjana,
If a constraint was declared DEFERRABLE, then you can defer its
enforcement to commit time. See the Derby Reference Manual section on
CONSTRAINTS: http://db.apache.org/derby/docs/10.12/ref/rrefsqlj13590.html
The following script shows this behavior:
connect 'jdbc:derby:memory:db;create=true';
create table primary_t( a int primary key );
create table foreign_t( a int references primary_t( a ) deferrable );
-- raises a foreign key violation because autocommit is on
insert into foreign_t values ( 1 );
autocommit off;
set constraints all deferred;
-- succeeds
insert into foreign_t values ( 1 );
-- raises a foreign key violation
commit;
However, this will not help you if you are using the builtin import
procedures, which autocommit. You may want to arrange your import
statements in dependency order so that primary key tables are loaded
before the foreign key tables which reference them.
Hope this helps,
-Rick