Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/08/2010, 05:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: multiples clientes haciedno el mismo insert

Cita:
El problema es que entre los clientes no hay comunicacion alguna, asi que muchos de sus inserts van a a producir error porque algun otro cliente ya ha insertado ese elemento.
El segundo insert queda en espera durante X tiempo (configurable) hasta que la tabla queda liberada por el primero. En ese estado, si la clave ya existe, simplemente no ingresará.
En este contexto puedes usar un INSERT IGNORE para contrar el evento de error si el error no te interesa, pero lo que debes tener en cuenta es que la PK de esa tabla no puede ser en ese caso autoincremental. Debe estar creada en base a campos propios de la tabla, porque sería la única forma de evitar duplicaciones.
Si sólo puedes manejar autoincrementales o numéricos controlados por aplicación, deberás administrar el ingreso de próxima clave antes de la inserción, lo que implica una consulta. Siendo que los vas a manejar con transacciones eso no debería ser problema: bastaría conque la consulta de la próxima clave estuvie4se también dentro de la transacción.

Lo que te conviene es graficar en alguna planilla o en diagrama, los diferentes estados de concurrencia posible para ver cómo resolver el tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)