Pregunta

Estoy usando Propel como mi ORM.

Necesito hacer una actualización por lotes de una tabla con los siguientes campos:

ID
Company
Assigned

La actualización incluirá una matriz de Company y establecerá el campo Assigne d en 1 .

El problema es que puede haber 2 actualizaciones por lotes que ocurren al mismo tiempo. Entonces, cuando eso suceda, tendré que aceptar una actualización y rechazar otra. ¿Hay alguna forma de bloquear la tabla para una actualización por lotes? ¿O hay una mejor solución?

¿Fue útil?

Solución

Aquí está la solución que encontré.

En lugar de bloquearlo, una mejor manera es usar la siguiente consulta equivalente al realizar la actualización por lotes

update table 
set Assigned=2
where Assigned=1
and Company in {company1, company2}

Ahora, si el número de filas devueltas no es el mismo que el número de Company seleccionado, entonces toda la operación debería ser revertido .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top