ALTERコマンドでMySQLテーブルのAUTO_INCREMENT初期値を設定する方法
MySQLのテーブルで自動インクリメント(AUTO_INCREMENT)の初期値を設定するには、ALTERコマンドを使用します。設定は大きく分けて2つのステップで行います。
手順1:カラムにAUTO_INCREMENT属性を付与する
まず、対象のカラムに対してNOT NULL制約とAUTO_INCREMENT、PRIMARY KEYを設定し、インデックスを追加します。以下の構文を使用します。
alter table テーブル名 modify カラム名 int NOT NULL AUTO_INCREMENT PRIMARY KEY, add index(カラム名);
手順2:AUTO_INCREMENTの開始値を指定する
次に、ALTER TABLE文でAUTO_INCREMENTの開始値を設定します。
alter table テーブル名 AUTO_INCREMENT=開始値;
実際に試してみよう
上記の構文の動作を確認するため、まずサンプル用のテーブルを作成します。テーブル作成のクエリは以下の通りです。
mysql> create table setAutoIncrementDemo
-> (
-> UserId int,
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (0.75 sec)
それでは、先ほどの2つのステップを実行して、AUTO_INCREMENTの初期値を設定してみましょう。
ステップ1:AUTO_INCREMENT属性の追加
UserIdカラムにAUTO_INCREMENTと主キーを設定するクエリは以下の通りです。
mysql> alter table setAutoIncrementDemo modify UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, add index(UserId); Query OK, 0 rows affected (1.51 sec) Records: 0 Duplicates: 0 Warnings: 0
ステップ2:初期値を1000に設定
AUTO_INCREMENTの開始値を1000に設定するクエリは以下の通りです。
mysql> alter table setAutoIncrementDemo AUTO_INCREMENT=1000; Query OK, 0 rows affected (0.34 sec) Records: 0 Duplicates: 0 Warnings: 0
レコードを挿入して動作を確認する
INSERTコマンドを使って、テーブルにいくつかのレコードを追加します。挿入用のクエリは以下の通りです。
mysql> INSERT INTO setAutoIncrementDemo(UserName) values('John');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO setAutoIncrementDemo(UserName) values('Carol');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO setAutoIncrementDemo(UserName) values('Sam');
Query OK, 1 row affected (0.13 sec)
SELECT文を使用して、テーブル内のすべてのレコードを表示します。クエリは以下の通りです。
mysql> select *from setAutoIncrementDemo;
実行結果は以下のようになります。
+--------+----------+ | UserId | UserName | +--------+----------+ | 1000 | John | | 1001 | Carol | | 1002 | Sam | +--------+----------+ 3 rows in set (0.00 sec)
このように、UserIdが設定した初期値「1000」から順に自動採番されていることが確認できます。既存のテーブルでも同様の手順で、任意の数値からIDを採番させることが可能です。
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20
-
MySQLのAUTO_INCREMENTとは?自動採番と初期値の設定方法をわかりやすく解説
AUTO_INCREMENT属性の基本MySQLのAUTO_INCREMENT属性は、新しい行に対して一意の識別子(連番)を自動的に生成するために使用されます。カラムが「NOT NULL」として宣言されている場合、そのカラムにNULLを代入することで、連番のシーケンスを生成することが可能です。AUTO_INCREMENTカラムに任意の値を挿入すると、そのカラムは指定した値に設定され、同時にシーケンスもリセットされます。以降は、挿入された最大値を起点として、連続した値が自動的に生成されていきます。また、既存のAUTO_INCREMENTカラムを更新した場合も、AUTO_INCREMENTのシーケ