Re:

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: HERMES ZAMBRA <hermeszambra(at)yahoo(dot)com>
Cc: María Lorena Culzoni Estigarribia <lorenaculzoni_2(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re:
Date: 2007-04-06 02:50:28
Message-ID: 20070406025028.GA7562@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

HERMES ZAMBRA escribió:

> Aca va un ejemplo no real que hice para vos
>
> CREATE TABLE familia (
> "id_familia" SERIAL,
> "familia" VARCHAR(100),
> "coe_fam" DOUBLE PRECISION,
> CONSTRAINT "idfamilias" PRIMARY KEY("id_familia")
> ) WITHOUT OIDS;
>
[...]

> CREATE UNIQUE INDEX "familia_desc_idx" ON familia
> USING btree ("familia");

Hay una manera mas facil (y un poco mas correcta) de hacer esto, y es
que declares que el campo es UNIQUE directamente. Ademas, el PRIMARY
KEY lo puedes declarar directamente en la columna afectada, no tienes
para que agregarlo en una linea aparte. Quedaria asi:

create table familia (
id_familia serial primary key,
familia varchar(100) unique,
coe_fam double precision
);

Casi siempre es deseable ademas declarar que los campos no son nulables,
es decir, que sus valores no pueden ser NULL:

create table familia (
id_familia serial primary key,
familia varchar(100) unique NOT NULL,
coe_fam double precision NOT NULL
);

(Las columnas que son parte de una llave primaria siempre son no
nulables, asi que no es necesario declararlo separadamente).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

  • RE: at 2007-04-05 15:06:56 from HERMES ZAMBRA

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message HERMES ZAMBRA 2007-04-06 06:43:12 Re:
Previous Message Jaime Casanova 2007-04-05 23:27:53 Re: CONSULTA