- 更新日: 2017年02月27日
- 公開日: 2015年12月08日
ゼロから始めるPHP講座Vol26 Auto Increment(A_I)とは
ゼロから始めるPHP講座AutoIncrement(A_I)とは
AutoIncrement(A_I)
新しくレコードを追加する際、レコードを識別するための一意な値を自動で生成してくれる機能がMySQLにはあり、これをAuto Increment(A_I)AutoIncrement(A_I)
PRIMARYKEY説明の際に述べた通り、「必ずレコードが特定できるユニークな値」というのが必要となることが多々あります。
この際、A_Iを設定しておくと、自動で連番の値を追加してくれます。
A_Iには以下の特徴があります。
- A_Iを設定するカラムには同時にPRIMARYKEYを設定する必要がある- A_Iはテーブル内の1つのカラムにしか設定できない- A_Iを設定してるカラムに値を指定しなかった場合、自動で番号が振られる- 自動で番号が振られる場合、番号は過去最大の番号に1を加えた値となる
PRIMARYKEYと同じく、phpMyAdminで既に作成したテーブルには、A_Iを設定してあるカラムがあります。
例えばgoods_tableの場合、goods_idに対して次のような設定をしました。
実際にA_Iを設定してあるカラムにて、カラムの値を指定せずにレコード追加をし、自動で番号が振られることをphpMyAdminより確認してみましょう。
goods_tableにて、goods_idは指定せずにINSERT
goods_table5
新しくレコードが追加されました。goods_idはINSERT文で指定していませんでしたが、A_Iにより、自動で「5」が割り振られました。
これまでA_Iを設定しているカラムに対してデータを指定していました。
A_Iを設定してあっても任意の値を挿入することは可能ですが、今後は特に明確な目的がある場合以外は、A_Iを利用し、自動で連番を振るようにしましょう。
課題
次の表と同じテーブル作成を以下のような制約で作成してください。
PRIMARYKEY,A_I*user_iduser_namemail_address**status*
またレコード追加はA_Iを利用し、user_idの指定はせずINSERTを行ってください。
user_table
user_tableは、ユーザ登録を行うサービスにて、ユーザの名前、メールアドレス、会員ステータスを管理するテーブルをイメージしています。
NEXTLESSONPHPによるDB操作基礎PHPによるDB操作基礎
PREVLESSONPrimaryKeyとはPrimaryKeyとは
- この記事を書いた人
- CodeCampus編集部