Обсуждение: A simple question

Поиск
Список
Период
Сортировка

A simple question

От
juanmime@ono.com
Дата:
Hello,
I wonder if postgres autocreates an index on foreign or primary key fields.

For example:

create table t1 (
  f1 integer,
  f2 varchar,
  primary key (f1));

create table t2 (
  f1 integer,
  f2 integer,
  primary key (f1),
  foreign key (f2) references t1(f1)
);

In this sample, "t1" has a primary key, and "t2" both (primary and foreign
keys).
Does postgres create each indexes for the primary key of "t1" and "t2" ?

and indexes for "f2" field in "t2" ?

I expleain, there are several DBMS where autocreates these indexes for you,
and others that shows you an alert, for example, if you don't create an unique
index for the primary key.

Thanks.



Re: A simple question

От
"Lee Wu"
Дата:
You can easily test yourself:

test=# \d t1
           Table "public.t1"
 Column |       Type        | Modifiers
--------+-------------------+-----------
 f1     | integer           | not null
 f2     | character varying |
Indexes: t1_pkey primary key btree (f1)

test=# \d t2
      Table "public.t2"
 Column |  Type   | Modifiers
--------+---------+-----------
 f1     | integer | not null
 f2     | integer |
Indexes: t2_pkey primary key btree (f1)
Foreign Key constraints: $1 FOREIGN KEY (f2) REFERENCES t1(f1) ON UPDATE
NO ACTION ON DELETE NO ACTION

test=#

So the answer is: yes for PK, no for FK in PG.


-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of juanmime@ono.com
Sent: Wednesday, March 16, 2005 8:57 AM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] A simple question

Hello,
I wonder if postgres autocreates an index on foreign or primary key
fields.

For example:

create table t1 (
  f1 integer,
  f2 varchar,
  primary key (f1));

create table t2 (
  f1 integer,
  f2 integer,
  primary key (f1),
  foreign key (f2) references t1(f1)
);

In this sample, "t1" has a primary key, and "t2" both (primary and
foreign
keys).
Does postgres create each indexes for the primary key of "t1" and "t2" ?

and indexes for "f2" field in "t2" ?

I expleain, there are several DBMS where autocreates these indexes for
you,
and others that shows you an alert, for example, if you don't create an
unique
index for the primary key.

Thanks.



---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to majordomo@postgresql.org so that your
      message can get through to the mailing list cleanly