Re: Confiabilidad del OID como clave única

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Confiabilidad del OID como clave única
Date: 2005-08-24 14:57:44
Message-ID: 20050824145744.GC15385@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Aug 24, 2005 at 11:26:56AM -0300, Conrado Blasetti wrote:

> Actualmente estoy probando con postgres 8.0. Tengo creadas las tablas con el
> attributo WITH OIDS; y mas allá de tener o no una Constraints Foreing Key,
> Unique etc, quería saber si accediendo a las tablas por el attributo OID,
> voy a tener siempre la misma info no duplicada y única en toda la base.
> Según la docum, esto es así, pero en versiones anteriores he leído que para
> cerciorase que sea única esta clave (oid) , debía configurarse algo que hoy
> por hoy no recuerdo, y tampoco en la docum de esta versión lo he encontrado.

Hola, si tienes un indice unico en el campo OID, entonces puedes estar
seguro que el OID sera unico en cada tabla (ojo, esto es valido en cada
tabla en forma independiente-- puede haber OIDs repetidos, si observas
mas de una tabla).

Ahora, esto es incomodo, puesto que el contador de OID se avanzara en
forma global para toda la BD (en lugar de localmente para cada tabla,
como ocurre por ej. con una secuencia); por lo tanto tendras
"wraparound" mas pronto, y mas probabilidad de que se empiecen a repetir
los valores.

Lo otro es que cuando trates de insertar un registro y el contador haya
dado la vuelta, si te toca un numero que ya esta en esa tabla, la
operacion va a fallar, y tu programa va a tener que hacer un reintento.
Esto puede ser necesario hacerlo varias veces hasta que encuentres un
numero que no haya sido usado, lo cual peude resultar muy incomodo para
la aplicacion.

IMO es mucho mejor crear las tablas WITHOUT OIDS y ponerle a cada tabla
donde sea necesario un campo SERIAL que actue como llave primaria.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"Ellos andaban todos desnudos como su madre los parió, y también las mujeres,
aunque no vi más que una, harto moza, y todos los que yo vi eran todos
mancebos, que ninguno vi de edad de más de XXX años" (Cristóbal Colón)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-08-24 14:59:53 Re: ¿Como puedo importar datos de un archivo externo?.
Previous Message Alvaro Herrera 2005-08-24 14:52:07 Re: No me funciona el restore de base de datos de PgAdminIII...