Re: Creating Primary Key after CREATE TABLE: Is Sequence created?
| От | Elliot |
|---|---|
| Тема | Re: Creating Primary Key after CREATE TABLE: Is Sequence created? |
| Дата | |
| Msg-id | 5245D6AE.2080201@gmail.com обсуждение исходный текст |
| Ответ на | Creating Primary Key after CREATE TABLE: Is Sequence created? (mdr <monosij.forums@gmail.com>) |
| Ответы |
Re: Creating Primary Key after CREATE TABLE: Is Sequence created?
|
| Список | pgsql-general |
On 2013-09-27 14:27, mdr wrote:
> I had a question on creating PK with alter table, after table is created.
>
> I understand I create a PK id during create table by stating id as follows:
> id serial primary key
>
> It implicitly creates index and the sequence testing_id_seq to be associated
> with the id field.
> I can list the sequence with \ds.
>
> ...
> However if I create a primary key with alter table primary key as in:
> import_dbms_db=> alter table testing ADD CONSTRAINT pkid PRIMARY KEY (id);
> NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "pkid" for
> table "testing"
> ALTER TABLE
> import_dbms_db=> \ds
> No relations found.
>
> It does not create a sequence.
Correct - it is the type of the column ("serial") in your create table
statement that automatically creates the sequence and attaches it to the
column, not the primary key constraint.
> Also during creating indexes (primary, secondary or foreign) am I allowed to
> create indexes with same name but on different tables? Or do index names
> have to be different across tables? probably good programming practice as
> well to have different index names across tables even if allowed?
Yes, index names must be unique within a schema. I usually name indexes
something like "idx_<tablename>_<indexed column(s) name(s)>" to
differentiate everything.
В списке pgsql-general по дате отправления: