MySQLでID番号などに連番を振りたい時に便利な「AUTO_INCREMENT」

MySQLにデータを挿入する時、データを連番で管理したい時があると思います。そんな時に便利なのが「AUTO_INCREMENT」属性です。

もくじ

  • フィールドに「AUTO_INCREMENT」属性を設定する
  • 「AUTO_INCREMENT」属性付きフィールドがあるテーブルへのデータ挿入
  • 直前に挿入したデータに割り振られた番号を確認できる SELECT LAST_INSERT_ID()文

フィールドに「AUTO_INCREMENT」属性を設定する

テーブルを作成する時に任意のフィールドに属性を設定する場合は、以下の例のようにフィールド名とフィールドのデータ型を記述した後に属性を書き連ねていきます。複数の属性を設定する時は半角スペースで区切ります。フィールド同士はカンマ(,)で区切ります。AUTO_INCREMENT属性は整数型のデータにしかセットできないのでその点は注意。なお、初期値をセットしたい場合は(デフォルトでは1からスタート)、下の例(AUTO_INCREMENT = 100)のように初期値を指定しましょう。 [mysql] CREATE TABLE database_name.hoge(id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT = 100, hoge TEXT CHARACTER SET utf8, lastdate BIGINT); [/mysql]

テーブル作成後に「AUTO_INCREMENT」属性付きの整数型フィールドを追加したいなどの場合はこちらの記事をご覧ください。

「AUTO_INCREMENT」属性付きフィールドがあるテーブルへのデータ挿入

「AUTO_INCREMENT」属性が付いている整数型フィールドについては、テーブルへのデータ挿入(追加)時に当該フィールドに入力する値を指定しなければ、自動的に適切な連番が割り振られます。よって、基本的には「AUTO_INCREMENT」属性が付いている整数型フィールドに入力する値を指定せずにデータ追加を行います。 [mysql] #「AUTO_INCREMENT」属性付きフィールド(この例ではID)に入力する値は指定しない INSERT INTO database_name.hoge(hoge, lastdate) VALUES (‘Make our Planet great again.’, 20000000); [/mysql]

直前に挿入したデータに割り振られた番号を確認できる SELECT LAST_INSERT_ID()文

場合によっては、データ挿入直後に、挿入したデータに割り振られた番号(整数値)を知りたい場合もあります。そのような場合には、「SELECT LAST_INSERT_ID()」文を使用することになります。ここではPHPからMySQLを使用している場合の例も合わせて示します。

[mysql] #データ挿入 INSERT INTO database_name.hoge(hoge, lastdate) VALUES (‘Make our Planet great again.’, 20000000); #データ挿入直後に以下のSQL文を実行 SELECT LAST_INSERT_ID() #先程挿入したデータに割り振られた連番(整数値)がわかる [/mysql] [PHP] query($sql); /* データ挿入が成功したら以下のプログラムを実行 */ if($result){ $sql = “SELECT LAST_INSERT_ID() as id”; $result2 = $mysqli->query($sql); $rdata = $result2->fetch_assoc(); /* $id に 挿入したデータに割り振られた連番(整数値)が格納される */ $id = $rdata[‘id’]; } ?> [/PHP]

参考リンク

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: