From: | Hannu Krosing <hannu(at)tm(dot)ee> |
---|---|
To: | Shridhar Daithankar <shridhar_daithankar(at)persistent(dot)co(dot)in> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta) |
Date: | 2003-09-29 12:23:26 |
Message-ID: | 1064838206.2645.5.camel@fuji.krosing.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
Shridhar Daithankar kirjutas E, 29.09.2003 kell 13:34:
> On Monday 29 September 2003 15:58, Christopher Kings-Lynne wrote:
> > >>So a db designer made a bloody mistake.
> > >>The problem is there's no easy way to find out what's missing.
> > >>I'd really like EXPLAIN to display all subsequent triggered queries
> > >>also, to see the full scans caused by missing indexes.
> > >
> > > It could probably be doable for EXPLAIN ANALYZE (by actually tracing
> > > execution), but then you will see really _all_ queries, i.e. for a 1000
> > > row update you would see 1 UPDATE query and 1000 fk checks ...
> > >
> > > OTOH, you probably can get that already from logs with right logging
> > > parameters.
> >
> > Actually - it shouldn't be too hard to write a query that returns all
> > unindexed foreign keys, surely?
>
> Correct me if I am wrong but I remember postgresql throwing error that foreign
> key field was not unique in foreign table. Obviously it can not detect that
> without an index. Either primary key or unique constraint would need an
> index.
>
> What am I missing here?
>
>
> IOW, how do I exactly create foreign keys without an index?
hannu=# create table pkt(i int primary key);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
'pkt_pkey' for table 'pkt'
CREATE TABLE
hannu=# create table fkt(j int references pkt);
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY
check(s)
CREATE TABLE
hannu=#
now the *foreygn key* column (fkt.j) is without index. As foreign keys
are enforced both ways, this can be a problem when changing table pkt or
bulk creating FK's on big tables.
----------------
Hannu
From | Date | Subject | |
---|---|---|---|
Next Message | Sven Schwyn | 2003-09-29 12:25:34 | Re: Modification Dates |
Previous Message | Bjørn T Johansen | 2003-09-29 11:49:16 | Re: Time problem again? |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruno Wolff III | 2003-09-29 13:20:07 | Re: pg_dump bug in 7.4 |
Previous Message | Nigel J. Andrews | 2003-09-29 11:47:11 | Re: ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta) |