MySQLで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
2024/04/17
phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回挿入したオートインクリメントの値を取得したかった。
前回分は以前からたまに使ってたので良いんだけど、次回挿入する値のところで、max(hoge) + 1みたいな形で取得を考えたけど、行の削除が発生すると+1にならないケースがある。なので以下で対応する。
ソースコード
次回挿入する値を取得
//次回挿入する値を取得
$query = '
SHOW TABLE STATUS
LIKE "table"
';
$row = $mysqli->query($query);
if( $row->num_rows == 0 ){ //行が見当たらない場合は1を入れる
$count = 1;
} else {
while ($rs = $row->fetch_array(MYSQLI_ASSOC)) {
$count = $rs['Auto_increment']; //見当たる場合はその値を入れる
}
}
直近で挿入した値を取得
//直近で挿入した値を取得
$query = '
INSERT INTO table
(aaa, bbb)
VALUES
(aaa, bbb)
';
$row = $mysqli->query($query);
$count = $mysqli->insert_id; //ここに直近で挿入したオートインクリメント値が入る
関連記事
-
-
MySQLでSELECT時に数値を3桁ずつのカンマ区切りに変換する方法
MySQLで商品価格のような数値の値を3桁ずつのカンマ区切りで取り出したいという ...
-
-
MySQLでIPアドレスを数値として入れると変な値になる場合の対処方法
MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...
-
-
MySQLのview(ビュー)で仮想的なテーブルを作成する方法
MySQL関連のサイトを見ているとview(ビュー)が云々という記事を見かけた。 ...
-
-
MySQLで1対多というテーブル構造でデータ結合と条件検索する方法
MySQLで飲食店舗テーブルと休業日テーブルがあり、1店舗に対して複数行の休業日 ...
-
-
MySQLでデータベース単位とテーブル単位のデータサイズ(容量)の調べ方
VPSの各種ファイルを整理している際に「MySQLも不要なデータを削除すればいい ...