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
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 |