De alguna manera puedo ver lo que quiere aquí. Desea asegurarse de tener varias inserciones y de alguna manera asegurarse de que tengan algún tipo de identificación consistente asociada con cada transacción. Si toma el enfoque de la marca de tiempo, no hay garantía de que se inserten todos en el mismo segundo.
Es muy difícil tener filas insertadas simultáneamente en MySQL, pero tengo una sugerencia que podría funcionar. Estoy pensando que deberías comenzar una transacción, encontrar el siguiente número de identificación más alto e insertar todas esas filas después.
$transRes = mysql_query("START TRANSACTION");
$nextListRes = mysql_query("SELECT max(listNumber) FROM InventoryRequests");
- recoger el resultado de
$nextListRes
y añadir 1.
- Run
INSERT
consultas para el SKU de usar este valor incrementado.
$commitRes = mysql_query("COMMIT");
Usted quiere asegurarse de que esta es una transacción y no dos consultas separadas, porque pueden existir condiciones de carrera, donde dos instancias de su funcionamiento del código PHP puede SELECT
al mismo tiempo (algo muy malo!)
Además, estaba pensando en una forma subconsciente de hacerlo, pero eso haría que cada instrucción INSERT
tenga un MAX(listNumber)
diferente cada vez que se ejecute, lo que significa que no tendrá la misma ID que usted gustaría. Es posible que desee examinar las declaraciones preparadas para el INSERT
s si necesita que sean un poco más rápidas, también :)
¿qué tipo de lista quieres? ¿Quieres guardarlo en DB o en alguna otra lista? – 1s2a3n4j5e6e7v
almacenarlo en la misma base de datos estaría bien. – cds5059