[MySQL] INSERTと同時に挿入する方法

1 min read

連番を挿入する場合、色々な方法があるかと思いますが、
AUTO_INCREMENT なんかだと欠番が出来ちゃうし…
MAX 関数で取得した最大値+1 を INSERT 時に一緒に挿入して…だと
同時アクセスされた時にうまく値をもってこれなかったりするし、
それに 2 回 SQL を発行しないといけないし…
…一発でスマートにやりたいものです。

それを実現してくれるのが

SELECT COALESCE(MAX(連番を入れるカラム)+1,1)

です。

コイツを INSERT 文に入れてやります。

INSERT INTO テーブル名(連番を入れるカラム, 他のカラム...)
SELECT COALESCE(MAX(連番を入れるカラム)+1,1), ?, ?
FROM テーブル名;

もしくは

INSERT INTO テーブル名 (連番を入れるカラム, 他のカラム...)
VALUES ((SELECT COALESCE(MAX(連番を入れるカラム)+1,1) FROM テーブル名), 他の値...)

これで好きな値と一緒に連番が振れるようになります。

このページをシェアする

Related Articles

[MySQL] データベースと各テーブルのサイズ(容量)を確認する方法

データベースのサイズを確認する / 特定のデータベースのサイズを確認する / 引用参考

[WordPress] 絵文字(Unicode6.0)が使えない問題

WordPressで絵文字(Unicode6.0)は使えるのか / なぜ使えないのか / 解決方法 / おわり

[WordPress] サムネイルを一括で解除する方法(設定の削除)

サムネイルが設定されている記事を確認する / 特定のサムネイル設定を削除する / すべてのサムネイル設定を削除する