Insert but Don't Commit MySql
-
29-09-2020 - |
Question
I am pretty new to MySql and Databases, and I was wondering in python sometimes I forgot to commit after an insert, and then when I do then next insert and commit that one the, auto-incrementing id
column has skipped a number.
So I was wondering what happens when you insert and forget to commit is this bad for the Database? Or does is just skip because when you insert it assigned an id to it but didn't save it?
Thanks
Solution
A skipped id can happen in several situation. Keep in mind that an INSERT
generally starts by allocating all the ids that it may need. Here's a few examples where AUTO_INCREMENT
ids are 'burned':
BEGIN; INSERT; ROLLBACK;
INSERT IGNORE -- and some of them are ignored due to dup key
REPLACE -- DELETE, then INSERT
The one I dislike is:
SET autocommit = 0;
INSERT
forget to ever do the COMMIT
For that reason, I avoid autocommit=0.
In a multi-master (including Galera) setup, with auto_increment_increment
> 1, the INSERTs
on one master skip values.