MySQL START TRANSACTIONを使用していて、MySQLによってロールバックが決定された場合(テーブルにAUTO_INCREMENT列がある場合)、列はロールバック中にデクリメントされますか?
それともすべきですか?
トランザクションデータが適切にロールバックされているという問題がいくつかありますが、テーブルが自動インクリメントされ、ロールバックでデクリメントされていないようです。
# BOTH TABLES START OUT EMPTY // TABLE1 ID is **auto_increment**
START TRANSACTION;
INSERT INTO `TABLE1` (`ID` ,`NAME`) VALUES (NULL , 'Ted'); # MySQL TABLE1 **ID** is Auto incremented to 1
INSERT INTO `TABLE2` (`ID` ,`WRONGVALUE`) VALUES (NULL , 'some value'); # error. This TRANSACTION will not succeed
COMMIT; # Because of the error - this TRANSACTION is now rolled back and Ted is NOT added
MySQLは最初のテーブルのIDをauto_incrementするので(トランザクションが成功したか失敗したかに関係なく)、これがテーブルを自分でデクリメントするための標準的な方法ですか?