Re: Adding Serial Type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, May 28, 2005 at 16:18:30 -0300,
  David Pratt <fairwinds@xxxxxxxxxxx> wrote:
> 
> On Saturday, May 28, 2005, at 03:27 PM, Bruno Wolff III wrote:
> 
> >On Sat, May 28, 2005 at 14:27:17 -0300,
> >  David Pratt <fairwinds@xxxxxxxxxxx> wrote:
> >>Pretty basic question. Is it necessary to add NOT NULL or UNIQUE NOT
> >>NULL to SERIAL or is this implicit and unnecessary?
> >
> >Serials no longer generate a uniqie index by default. So in practice
> >you will normally want to declare them as PRIMARY KEYs. However there
> >are cases where you don't need this and the index is extra overhead.
> >
> 
> Alright.  so would it be better form for me to to this in a 
> create_tables.sql
> 
> CREATE TABLE new_table (
> 	id                             SERIAL,

Its simpler to use:
        id  SERIAL PRIMARY KEY,

> 	description             TEXT NOT NULL
> );
> 
> And then in a create_primary_keys.sql do this for the tables requiring 
> it.
> 
> ALTER TABLE new_table ADD CONSTRAINT new_table_pkey PRIMARY KEY (id);
> 
> Does the PRIMARY KEY declaration ensure that the id values are unique? 
> Serial should always give me an incremented value that's different so I 
> am assuming it is  unnecessary to use UNIQUE.  Am I correct?

PRIMARY KEY implies UNIQUE and NOT NULL and in Postgres will result in a
unique index being created to enforce this. It will also make id the
default column in new_table for foreign key references to that table.


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux