Re: Duda sobre constraints

From: "Mario A(dot) Soto Cordones" <mario_soto(at)venezolanadeavaluos(dot)com>
To: <jyanez(at)sigma(dot)gov(dot)bo>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Duda sobre constraints
Date: 2005-04-07 17:30:24
Message-ID: 55537.200.35.66.77.1112895024.squirrel@mail.venezolanadeavaluos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


> Hola a todos, tengo la siguiente duda al ejecutar esta sentencia:

Hola

>
> CREATE TABLE tipos_auxiliares(
> tipo_auxiliar int4 NOT NULL,
> ...
> CONSTRAINT tipos_auxiliares PRIMARY KEY ( tipo_auxiliar)
> )
> WITHOUT OIDS;
>
> Visualizo el siguiente mensaje:
>
> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
> "tipos_auxiliares" for table "tipos_auxiliares"
> ERROR: relation "tipos_auxiliares" already exists
>
> Lo que entiendo es que va crear el indice que controla la llave primaria
> y que le asignara el nombre que se indico para el constraint
> (tipos_auxiliares), lo que no me queda claro es por que me dice que ya
> existe una relacion llamada tipos_auxiliares.
>

Estas en lo correcto pero debes usar un nombre diferente para crear el
constraint.

> Ahora bien, cuando ejecuto:
>
> CREATE TABLE tipos_auxiliares(
> tipo_auxiliar int4 NOT NULL,
> ...
> CONSTRAINT pk_tipos_auxiliares PRIMARY KEY ( tipo_auxiliar)
> )
> WITHOUT OIDS;
>
> Todo funciona perfectamente bien.
>
> Significa que los nombres de constraints deben ser distintos a los
> nombres de las tablas ?

SI ESO ES CORRECTO

o quiza que no puede haber un indice que tenga
> el mismo nombre de la tabla de la cual controla el Primary Key ?
>

No pueden haber objetos con nombres duplicados.

> --
> Juan Pablo Yañez
> Grupo DBA

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan P. Aviles 2005-04-07 17:44:35 Re: Row level lock in plpgsql
Previous Message Manuel Sugawara 2005-04-07 17:22:08 Re: Duda sobre constraints