tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

auto_incrementの値を操作する

auto_incrementの値を初期化する

alter table文で初期化できる。

alter table test auto_increment=1;

auto_incrementの値を取得する

取得するにはauto_incrementの値を生成する必要があるため、先にinsertを行う。

insert into test (msg) values ('');

insert後にlast_insert_id()関数を実行すると、auto_incrementの値が取得できる。

select last_insert_id();

なんか面倒。

insertを投げずに取得する方法は無いみたいなんだけど、insertをしたくない場合にはtransactionにしないといけないのだろうか?
ということは、transactionの無いMyISAMではできないということなのだろうか?