| From: | Sam Mason <sam(at)samason(dot)me(dot)uk> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Very slow joins |
| Date: | 2009-07-25 12:45:01 |
| Message-ID: | 20090725124501.GJ5407@samason.me.uk |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Sat, Jul 25, 2009 at 02:36:19AM -0700, MS wrote:
> I believe the update took so long because pgsql was checking if the
> changes don't break the referential integrity.
> So - problem solved, postgres good. ;) But isn't there a way to make
> some bulk operations without having to drop indexes/FKs?
I've never had the need to use this, but I believe this works using the
"SET CONSTRAINTS" command[1]; e.g. I can do:
CREATE TABLE foo ( id INTEGER PRIMARY KEY );
CREATE TABLE bar ( id INTEGER REFERENCES foo DEFERRABLE );
INSERT INTO foo VALUES (1);
INSERT INTO bar VALUES (1);
the following will now fail:
BEGIN;
INSERT INTO bar VALUES (2);
INSERT INTO foo VALUES (2);
COMMIT;
but the following is OK:
BEGIN;
SET CONSTRAINTS bar_id_fkey DEFERRED;
INSERT INTO bar VALUES (2);
INSERT INTO foo VALUES (2);
COMMIT;
Unfortunatly only foreign key constraints are affected by this setting,
but I believe there are plans to extend this further.
--
Sam http://samason.me.uk/
http://www.postgresql.org/docs/current/static/sql-set-constraints.html
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Sam Mason | 2009-07-25 12:47:43 | Re: Is there a RECORD[] type in plpgsql? |
| Previous Message | Alban Hertroys | 2009-07-25 12:08:47 | Re: Very slow joins |