MySQLで連番データを登録する時のSQLの書き方

スポンサーリンク

注:今回は技術的な話題です。

システムを開発するとデータを登録する機会があると思います。

データに連番を付けることも多いと思います。
少なくとも私はデータベースのテーブルの主キーで連番を使うことがあります。

よくやるケースなので、私の備忘録代わりに記録を残しておきます。

このページの目次

SQL文

SELECT  COALESCE(MAX(連番にしたいフィールド名), 0) + 1 AS 適当なフィールド名 FROM テーブル名

解説

連番なので一番大きな値が最近の数字です。
連番にするには一番大きな値にプラス1すればいいです。

だからMAX関数を使って最大値を取得します。

もう一つミソなのが、COALESCE。
COALESCEを使っているのは、まだデータが1件も登録されていない時のことを考慮しているからです。

0件だとMAX関数で返ってくるのはNULLになります。

NULLにプラス1するのはできないので、NULLをゼロに置き換えています。それがCOALESCE関数でしていることです。