Re: Actualizacion en Cascada de llave primaria

From: Javier Chavez <jchavezb(at)gmail(dot)com>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Cc: Gunnar Wolf <gwolf(at)gwolf(dot)org>, Martin Marques <martin(at)marquesminen(dot)com(dot)ar>, postgresayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Actualizacion en Cascada de llave primaria
Date: 2007-11-12 23:10:42
Message-ID: 4738DD72.6040204@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Sebastián Villalba escribió:
> Hola
>
> On Mon, 12 Nov 2007 11:29:30 -0600, Gunnar Wolf wrote
>
>>>>> diganme una cosa como se comportan esos campos en PG porque yo
>>>>> por norma siempre prefiero calcular el valor del campo cuando es
>>>>> una clave primaria porque me han pasado tallas en sqlserver al
>>>>> menos que esos campos a veces se corrompen
>>>>>
>>>> Nunca me paso. ¿Qué significa que se corrompe el campo? ¿En qué
>>>> forma se corrompe?
>>>>
>>> Es una larga historia!! pero por un motivo que no tengo la mas
>>> remota idea me calculo mal unas PK y al tratar de hacer un insert me
>>> reclamaba clave duplicada!!!.. :S fue por eso ... pero bueno puede
>>> que PG no sea asi ... era solo simple curiosidad
>>>
>> Como dices, quién sabe que haya pasado - pero si llegaste a esa
>> situación (tal vez insertando IDs a mano sin haberle pedido a
>> Postgres que lo haga a través de la secuencia [...]
>>
>
> Entiendo que la mala experiencia la había tenido con SQL Server, no con
> PostgreSQL. De todas formas, antes de tirarle tierra a SQL Server (no es esa
> mi intensión), sospecho que eso le ocurrió independientemente del motor de
> base de datos que haya utilizado. Le sucedió porque en lugar de dejar que el
> motor administre las llaves primarias, él calculaba el valor en su aplicación
> e intentaba insertar el registro ya con el valor de su llave.
>
>
>>> Si pero = no se quiza soy un poco mas fundamentalista ... en ese
>>> sentido prefiero tener el control como programador .. y no darle esa
>>> responsabilidad al motor.. [...]
>>>
>
> A ésto me refería.
>
>
>> Me suena a que aprendiste a usar BDs con algo tipo MySQL, ¿verdad? Es
>> mucho más confiable dejar que la BD lo haga. Si no, puedes caer
>> fácilmente en condiciones de carrera - Por ejemplo, si tu programa
>> incluye un SELECT id FROM articulos ORDER BY id DESC LIMIT 1 para
>> encontrar si el ID más alto empleado, el cual es incrementado en 1, y
>> después viene un INSERT INTO articulos (id, otros_campos) VALUES
>>
>>
No no aprendi con MySql nunca lo he usado .. aprendi con PG el año 2002
cuando hice mi tesis y despues trabaje 4 años con SqlServer...
>> (el_nuevo_id, los_otros_valores) - ¿Qué pasa si llegan dos
>> solicitudes a la vez? Recuerda que la comunicación con Postgres es
>> via sockets, pues es entre dos procesos de sistema diferentes, e
>> implica un cambio de contexto para el sistema operativo. Puedes
>> terminar con una excepción por PK duplicada - A menos que implmentes
>> un sistema de locking, semáforos o lo que gustes. ¡Ah! Olvidaba
>> decírtelo: La buena gente de Postgres se tomó la molestia de
>> implementarlo por tí. Se llama "secuencias" ;-)
>>
>
>
sip entiendo por hay iva mi pregunta ... en base a su experiencia como
se comportan... ahora me queda mas claro.

> Si no fué eso mismo lo que le ocurrió con SQL Server, debe haber pegado en el
> palo. ¿Para qué reinventar la rueda?. Sobre todo cuando la rueda ofrecida por
> PostgreSQL, es una circunferencia perfecta!. Saludos... ;)
>
Nop eso no fue lo que ocurrio con SqlServer .. por eso preguntaba en el
inicio del correo como se comportaban estos campos en PG...
> -
> -------------------------------------------
> Sebastián Villalba
> sebastian(at)fcm(dot)unc(dot)edu(dot)ar
> -------------------------------------------
>
>

Slds.
Javier

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guido Barosio 2007-11-13 00:01:14 Re: Clientes y Otras Yerbas
Previous Message Sebastián Villalba 2007-11-12 22:51:51 Re: Actualizacion en Cascada de llave primaria