このようなテーブルがあります
mysql> describe seudonimos;
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id_seudonimo | int(11) unsigned | NO | PRI | NULL | auto_increment |
| seudonimo | varchar(45) | NO | UNI | NULL | |
+--------------+------------------+------+-----+---------+----------------+
2 rows in set (0.02 sec)
それが空で、自動インクリメントが 0 であると仮定しましょう。例:
SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO seudonimos (seudonimo) VALUES ('Agatha Christie');
ROLLBACK;
SET AUTOCOMMIT=1;
私が知る限り、ロールバックは自動インクリメントには影響しません。したがって、新しい値を挿入すると、自動インクリメントは 1 ではなく 2 になります。しかし、「Agatha Christie」を再度挿入しようとすると、次の問題が発生します。
INSERT INTO seudonimos (seudonimo) VALUES ('Agatha Christie');
#1062 - Duplicate entry 'Agatha Christie' for key 'seudonimo'
それは私が期待したものではありません。私はこれを期待していました:
+--------------+--------------------+
| id_seudonimo | seudonimo |
+--------------+--------------------+
| 2 | Agatha Christie |
+--------------+--------------------+
どうしたの?