PHP で MySQL を操作するのに役立つリファレンス

MySQL FAQ

AUTO_INCREMENT で最初に採番される値は何ですか?

スポンサードリンク
AUTO_INCREMENT を指定された列は 1 から採番されます。

MySQL では、 AUTO_INCREMENT で自動採番する場合、 0 からではなく 1 から自動採番します。 1 の後は 2, 3 と 1 ずつ増やして連番で採番します。

尚、自動採番する場合は INSERT 時に AUTO_INCREMENT の列には値をセットせず NULL で挿入します。実際に実行してみて確認しましょう。

サンプルコード
/* AUTO_INCREMENT を設定した列があるテーブルの作成 */
CREATE TABLE ITEM_LIST (
    ITEM_ID   INT AUTO_INCREMENT,
    ITEM_NAME VARCHAR(100),
    /* AUTO_INCREMENT 列は INDEX の設定が必要 */ 
    INDEX(ITEM_ID) 
);

/* 上記テーブルにデータを登録 */
INSERT INTO ITEM_LIST (ITEM_ID, ITEM_NAME) VALUES (NULL, 'MySQL FAQ');

/* 登録したデータを確認 */
SELECT * FROM ITEM_LIST;

実行結果は次の通りです。最後の SELECT 文の実行結果で、AUTO_INCREMENT を指定した列に 1 が採番されていることが分かります。

mysql> CREATE TABLE ITEM_LIST (
    ->     ITEM_ID   INT AUTO_INCREMENT,
    ->     ITEM_NAME VARCHAR(100),
    ->     /* AUTO_INCREMENT 列は INDEX の設定が必要 */
    ->     INDEX(ITEM_ID)
    -> );
Query OK, 0 rows affected (0.08 sec)

mysql> /* 上記テーブルにデータを登録 */
mysql> INSERT INTO ITEM_LIST (ITEM_ID, ITEM_NAME) VALUES (NULL, 'MySQL FAQ');
Query OK, 1 row affected (0.01 sec)

mysql> /* 登録したデータを確認 */
mysql> SELECT * FROM ITEM_LIST;
+---------+-----------+
| ITEM_ID | ITEM_NAME |
+---------+-----------+
|       1 | MySQL FAQ |
+---------+-----------+
1 row in set (0.00 sec)

mysql>
スポンサードリンク

AUTO_INCREMENT

その他のカテゴリー一覧