powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / rollback и индекс auto_increment
9 сообщений из 9, страница 1 из 1
rollback и индекс auto_increment
    #38546738
AlexSes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Почему при rollback индекс auto_increment не возвращается к прежнему - до вставки? И можно ли его вернуть штатными стредствами?
Спасибо.
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546740
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexSes,

Код: sql
1.
ALTER TABLE t AUTO_INCREMENT = value 
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546741
AlexSes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Kuzminsky, ясно, спасибо.
"Почему?" в первом вопросе - не переспрашиваю, т.к. понял бессмысленность данного вопроса.
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546742
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexSes"Почему?" в первом вопросе - не переспрашиваю, т.к. понял бессмысленность данного вопроса.

Что знал, то ответил :-)
AUTO_INCREMENT не имеет отношения к InnoDB, думаю поэтому rollback его не возвращает к предыдущему значению
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546749
AlexSes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы ответили на мой вопрос, спасибо.
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546787
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexSes,

http://stackoverflow.com/questions/449346/mysql-auto-increment-does-not-rollback It can't work that way. Consider:
program one, you open a transaction and insert into a table FOO which has an autoinc primary key (arbitrarily, we say it gets 557 for its key value).
Program two starts, it opens a transaction and inserts into table FOO getting 558.
Program two inserts into table BAR which has a column which is a foreign key to FOO. So now the 558 is located in both FOO and BAR.
Program two now commits.
Program three starts and generates a report from table FOO. The 558 record is printed.
After that, program one rolls back.

How does the database reclaim the 557 value? Does it go into FOO and decrement all the other primary keys greater than 557? How does it fix BAR? How does it erase the 558 printed on the report program three output?

Oracle's sequence numbers are also independent of transactions for the same reason.

If you can solve this problem in constant time, I'm sure you can make a lot of money in the database field.

Now, if you have a requirement that your auto increment field never have gaps (for auditing purposes, say). Then you cannot rollback your transactions. Instead you need to have a status flag on your records. On first insert, the record's status is "Incomplete" then you start the transaction, do your work and update the status to "compete" (or whatever you need). Then when you commit, the record is live. If the transaction rollsback, the incomplete record is still there for auditing. This will cause you many other headaches but is one way to deal with audit trails.
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546802
AlexSes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, ясно, спасибо.
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38546911
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexSesДобрый день.
Почему при rollback индекс auto_increment не возвращается к прежнему - до вставки? И можно ли его вернуть штатными стредствами?
Спасибо.Может быть и можно, но - зачем? Это же не порядковый номер документа, а уникальный ключ, однозначно определяющий запись в таблице - другого смысла в нем нет...
...
Рейтинг: 0 / 0
rollback и индекс auto_increment
    #38547090
AlexSes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я уже понял бессмысленность данного вопроса
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / rollback и индекс auto_increment
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]