[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