[pyar] Nombres unicos para tablas
Ricardo Aráoz
ricaraoz en gmail.com
Vie Jun 18 16:37:47 ART 2010
On 18/06/2010 04:35 p.m., Roberto Alsina wrote:
> On Friday 18 June 2010 16:29:17 Lucio Torre wrote:
>
>> 2010/6/18 Roberto Alsina<ralsina en netmanagers.com.ar>:
>>
>>> On Friday 18 June 2010 15:57:09 Lucio Torre wrote:
>>>
>>>>> 1. sacar numero al azar
>>>>> 2. ver que no se usa
>>>>> 3. usarlo
>>>>>
>>>> Si ver que no se usa y usarlo no son operaciones atomicas alguien
>>>> puede empezar a usarlo despues de tu chequeo y se rompen las cosas.
>>>> Ahi abria que cambiar el loop a "reintentar si falla porque ya esta
>>>> usado"
>>>>
>>> Aunque fueran atómicas hay una race condition. Lo que necesitarías que
>>> sea atómica es "ver que no se usa y usarlo", y la forma fácil de hacer
>>> eso es meterle un lock :-)
>>> El loop no lo puse porque no hace falta para la race condition.
>>>
>> Por eso, la solucion seria:
>>
>> 1- sacar un numero al azar
>> 2- usarlo
>>
>> :)
>>
> Y eso no te da numeros repetidos porque....
>
Dado que es dentro de una bd, por qué no usarla? Creás una
tabla(nomUsados) con un campo caracter que sea también la clave
primaria. Después inventás un nombre de tabla, y tratás de guardarlo en
nomUsados, si no podés es porque está usado, si podés entonces ese
nombre queda reservado para tu proceso, cuando terminás de usar el
nombre lo borrás de nomUsados.
More information about the pyar
mailing list