Re: Consulta sobre el correcto uso de campos null

From: Juan Martínez <jeugenio(at)umcervantes(dot)cl>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>
Cc: "Gabriel Hermes Colina Zambra" <hermeszambra(at)yahoo(dot)com>, Juan Martínez <jeugenio(at)umcervantes(dot)cl>, "Damian Culotta" <dculotta(at)fibertel(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta sobre el correcto uso de campos null
Date: 2007-05-15 01:34:26
Message-ID: 1325.190.44.84.95.1179192866.squirrel@correo.umcervantes.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El Mar, 15 de Mayo de 2007, 4:34 am, Jaime Casanova escribió:
> On 5/14/07, Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> wrote:
>> Juan Martínez dijo:
>> > Ahora cuando hablamos de claves o indices, los
>> > valores nulos no tienen
>> > mucho sentido y tecnicamente no deberian permitirse
>> > valores nulos para
>> > un campo que es indice o clave.
>>
>> Indice si es para un orden podria admitirlos no veo
>> por que no ?
>>
>> Y clave seria imposible nulos, seria nulo, ya que solo
>> admitira un valor nulo, puesto que no cabria la
>> posiblidad de otro.
>>
>
> prueba=# create table prueba (c1 int primary key);
> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
> "prueba_pkey" for table "prueba"
> CREATE TABLE
>
> prueba=# \d prueba
> Table "public.prueba"
> Column | Type | Modifiers
> --------+---------+-----------
> c1 | integer | not null
> Indexes:
> "prueba_pkey" PRIMARY KEY, btree (c1)
>
> al indicar primary key automaticamente se añade not null a todos los
> campos que intervienen, esto es porque no identificar
>
> puedes, sin embargo, crear indices unicos sobre campos que acepten nulos
>
> prueba=# drop table prueba;
> DROP TABLE
> prueba=# create table prueba (c1 int unique);
> NOTICE: CREATE TABLE / UNIQUE will create implicit index
> "prueba_c1_key" for table "prueba"
> CREATE TABLE
>
> prueba=# \d prueba
> Table "public.prueba"
> Column | Type | Modifiers
> --------+---------+-----------
> c1 | integer |
> Indexes:
> "prueba_c1_key" UNIQUE, btree (c1)
>
> prueba=# insert into prueba values (null);
> INSERT 0 1
> prueba=# insert into prueba values (null);
> INSERT 0 1
> prueba=# insert into prueba select null from generate_series(1, 1000);
> INSERT 0 1000
>
> No solo que admitio mas de un nulo en un campo con un indice unico,
> llevo 1002 valores nulos =)
>
> la razon es que NULL siempre sera diferente a NULL. La razon por la
> que no se puede usar para claves primarias es que no identificaria a
> un registro, le quitaria identidad (NULL es un valor desconocido ;)

Gracias Jaime. Por suerte existe personas con un alto nivel didactico que
es mucho mas fuerte que mi pereza para explicarlo de forma practica ;-)

Saludos!

--
Juan Martinez Linux user # 335778
Departamento de Informática 499 7934 - 499 7992
Universidad Miguel de Cervantes Mac Iver # 370 - Stgo. Centro - RM

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2007-05-15 01:40:01 Re: Consulta sobre el correcto uso de campos null
Previous Message Rommel Oramas 2007-05-15 01:31:47 Re: patentes