Many of you might have come across an issue of Auto incrementing while
working with database products. Truly speaking, recently I also came across one
silly problem and thought of sharing it here.
Imagine that at some point of time, you might want to send your new data to a back-end database. If your application supplies the auto-increment values, then
Another problem, what happens if you add new rows in your application to generate auto-increment values of 1 to 100 and then send these rows back to the database table, and the table already has 10 rows???
When the first row is sent from your application, it has an auto-increment value of 1. The new auto-increment number created in the database will be 11. Your application queries for the 11 and tries to change the 1 to 11. Guess, what will happen here? Of course, an EXCEPTION will be thrown because 11 is already in your table.
The solution to this problem is, set
Hope the above small tip will save your lot of time in debugging the code to find the root cause. Enjoy learning !!!
Imagine that at some point of time, you might want to send your new data to a back-end database. If your application supplies the auto-increment values, then
- what will the database do?
- what if application receives duplicate values from different client applications?
Another problem, what happens if you add new rows in your application to generate auto-increment values of 1 to 100 and then send these rows back to the database table, and the table already has 10 rows???
When the first row is sent from your application, it has an auto-increment value of 1. The new auto-increment number created in the database will be 11. Your application queries for the 11 and tries to change the 1 to 11. Guess, what will happen here? Of course, an EXCEPTION will be thrown because 11 is already in your table.
The solution to this problem is, set
AutoIncrementSeed
to -1
and set
AutoIncrementStep
to -1
. This will cause negative
numbers to be generated; they won't conflict with the values coming from the
database because the database doesn't generate negative numbers.Hope the above small tip will save your lot of time in debugging the code to find the root cause. Enjoy learning !!!
Comments
Post a Comment