Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySQL transakcje, rollback autoincrement
Thuunder
post 23.10.2009, 10:49:01
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z transakcją, ponieważ jeśli wszystko jest ok to commit i rekord się dodaje. Gorzej jeśli coś się nie powiedzie i wykonuję rollback - wtedy autoincrement jakiegoś pola zwiększa mi się o 1, a nie tak jak powinien pozostać nieruszony.
Co z tym zrobić?

Ten post edytował Thuunder 23.10.2009, 10:52:08


--------------------
najprostsze rzeczy są najmniej oczywiste
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post 23.10.2009, 11:03:31
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nawet jesli to prawda to w czym ci to przeszkadza?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Thuunder
post 23.10.2009, 11:10:24
Post #3





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

Ostrzeżenie: (0%)
-----


Nie potrzebnie się zwiększają wartości i 'uciekają' idiki. Z drugiej strony bez sensu bo niby jest rollback i nie ma wprowadzać zmian a jednak to nie działa tak malinowo... niestety.
Dlatego pytam czy ktoś może się z tym spotkał i wie o czymś o czym ja nie wiem jak można by było to rozwiązać w prosty sposób.

Ten post edytował Thuunder 23.10.2009, 11:17:47


--------------------
najprostsze rzeczy są najmniej oczywiste
Go to the top of the page
+Quote Post
nospor
post 23.10.2009, 11:23:58
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://dev.mysql.com/doc/refman/5.1/en/inn...t-handling.html
Cytat
In all lock modes (0, 1, and 2), if a transaction that generated auto-increment values rolls back, those auto-increment values are “lost.” Once a value is generated for an auto-increment column, it cannot be rolled back, whether or not the “INSERT-like” statement is completed, and whether or not the containing transaction is rolled back. Such lost values are not reused. Thus, there may be gaps in the values stored in an AUTO_INCREMENT column of a table.


To kiepsko masz napisaną aplikacje ze tak czesto ci sie zdarzają rollbacki ze widzisz problem w tych dziurach winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Thuunder
post 23.10.2009, 11:28:16
Post #5





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

Ostrzeżenie: (0%)
-----


hehe winksmiley.jpg
Jeszcze nie działa do końca, ale zauważyłem to i szukam rozwiązania na wypadek gdyby coś takiego się później pojawiło.
Dzięki poczytam.

Ten post edytował Thuunder 23.10.2009, 11:28:44


--------------------
najprostsze rzeczy są najmniej oczywiste
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:18