AUTO_INCREMENTが飛ぶ
結論
InnoDBの仕様
現象
insert_on_duplicateで動くhogefugaを作っていたらidがめっちゃ飛びます!って言われた。 その直前でdelete文走ってて、なんか余計なdelete文発行されてる/間違っているのかな、と思ってコメントアウトしても起こった。
つまり
$qb->insert_on_duplicate('member', { email => 'foo@exapmle.com', name => $name }, { name => $name }); $qb->insert_on_duplicate('member', { email => 'foo@exapmle.com', name => $name }, { name => $name }); $qb->insert_on_duplicate('member', { email => 'bar@exapmle.com', name => $name }, { name => $name });
ってやると id 1, id 3のレコードができる。
衝撃すぎて久しぶりにブログを書いた。