Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate batch number in mysql?

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.

like image 761
Hailwood Avatar asked Dec 24 '13 03:12

Hailwood


People also ask

Does MySQL support batch?

Batch mode can also be useful while you are developing a query, particularly for multiple-line statements or multiple-statement sequences. If you make a mistake, you do not have to retype everything. Just edit your script to correct the error, then tell mysql to execute it again.

What is batch insert in MySQL?

Batch inserts is the ability to send a set of inserts to a single table, once to the database as a single insert statement instead of individual statements.

How do you run batch mode in MySQL?

To do this, put the commands you want to run in a file, then tell mysql to read its input from the file: shell> mysql < batch-file If you are running mysql under Windows and have some special characters in the file that cause problems, you can do this: C:\> mysql -e "source batch-file" If you need to specify connection ...

How do I set Autoincrement in MySQL workbench?

In MySQL, the syntax to change the starting value for an AUTO_INCREMENT column using the ALTER TABLE statement is: ALTER TABLE table_name AUTO_INCREMENT = start_value; table_name. The name of the table whose AUTO_INCREMENT value you wish to change.


1 Answers

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.

like image 119
Gordon Linoff Avatar answered Sep 25 '22 16:09

Gordon Linoff