同じデータベースの違うテーブルでプライマリキーを重複させたくない場合や、 クラスタ化した場合とかで AUTO_INCREMENT が使えない場合。 いわゆる採番テーブルってやつ。 DBICとかで sub nextval { my $self = shift; my $dbh = $self->result_source->storage->dbh; my $sql = 'UPDATE sequence SET id = LAST_INSERT_ID(id + 1)'; my $sth = $dbh->prepare($sql); $sth->execute; my $id = $sth->{mysql_insertid}; $sth->finish; $id; } とか手動でやってもよかったんだけど、せっかくなのでMySQLのトリガーでやってみた。 DROP TABLE IF EXISTS