Generate batch number in mysql?

孤者浪人 提交于 2019-12-22 06:20:36

问题


We have a script that should function like so:

Script inserts n rows into database inserting the same unique number into the batch column.

Script puts a job on the AWS queue with the batch number.
AWS worker does some processing and fires off another script on our server.
Script on our server inserts the response from the AWS worker into all rows in the batch.

This is all easy except - creating the batch number. We can't just get the max batch number and add 1 due to multiple users being able to create a batch at the same time.

So what is the most ideal way to do this? The batch number does not have to be an integer although it could be useful.


回答1:


Create a new table called batches that has one row per batch. This table will have an auto-increment column called batchid.

Your script will start by inserting a row into this table. In addition to the batchid, it can also contain the time stamp of when the batch was created, who created it, and perhaps other pertinent information. This id will then be used through the rest of the batch.




回答2:


The best thing I can suggest would be to use something like uniqid to generate a random sequence, then use something like MD5 to ensure uniformity.

$batch = md5(uniqid('some salt', true));

It's not guaranteed to be unique but it's unique enough for simple cases.



来源:https://stackoverflow.com/questions/20754544/generate-batch-number-in-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!