連番をSQLで管理する

mysql-1

 

連番を別テーブルを作り、auto_incrementで管理したかった時のメモ。

 

テーブルを作る

CREATE TABLE order_seq (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
);

 

連番の開始を調整

alter table order_seq auto_increment=197807;

 

auto_increment1つ進めて変数に代入

# --- o_idを発行 ---
$db = DBI->connect($db_source, $user, $passwd);
$db->do("INSERT INTO order_seq VALUES ()");  # AUTO_INCREMENTを進める
my $sth = $db->prepare("SELECT LAST_INSERT_ID()");
$sth->execute();
my ($order_counter) = $sth->fetchrow_array();
$sth->finish();