MySQLで開始値を指定してAUTO_INCREMENTカラムを追加する方法
すでに作成済みのテーブルに新しいカラムを追加するには、ALTER TABLE 文と ADD COLUMN 句を使用します。さらに AUTO_INCREMENT 属性を組み合わせることで、連番が自動的に採番されるカラムに対して、任意の開始値(初期値)を設定することも可能です。
本記事では、既存のテーブルへ「1000」から始まる自動増加カラムを追加する手順を、実際のSQL実行例とあわせて解説します。
ステップ1:テーブルを作成する
まずはサンプル用のテーブルを作成しましょう。ここでは学生名だけを持つシンプルなテーブルを定義します。
mysql> create table DemoTable
-> (
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.63 sec)
ステップ2:サンプルデータを挿入する
INSERT コマンドを使って、テーブルにいくつかのレコードを登録します。
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.12 sec)
ステップ3:現在のレコードを確認する
SELECT 文を実行して、テーブル内のすべてのレコードを表示してみます。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-------------+ | StudentName | +-------------+ | Robert | | Adam | | Mike | +-------------+ 3 rows in set (0.00 sec)
ステップ4:開始値を指定してAUTO_INCREMENTカラムを追加する
ここが本題となる部分です。ALTER TABLE 文で新しいカラム StudentId を追加し、AUTO_INCREMENT=1000 を指定することで、1000から連番が始まるように設定しています。
mysql> alter table DemoTable add column StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,AUTO_INCREMENT=1000; Query OK, 0 rows affected (1.83 sec) Records: 0 Duplicates: 0 Warnings: 0
ポイント: 既存のテーブルに AUTO_INCREMENT カラムを追加した場合、すでに登録されている各行にも自動的に連番が割り当てられます。このとき、指定した開始値(この例では1000)から順に採番されます。また、AUTO_INCREMENT カラムは主キー(PRIMARY KEY)として定義する必要があるため、あわせて PRIMARY KEY を指定している点にも注意してください。
実行結果の確認
もう一度テーブルのレコードを取得して、意図どおりに連番が振られているか確認しましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-------------+-----------+ | StudentName | StudentId | +-------------+-----------+ | Robert | 1000 | | Adam | 1001 | | Mike | 1002 | +-------------+-----------+ 3 rows in set (0.00 sec)
このように、既存レコードに対して「1000」「1001」「1002」という具合に、指定した開始値から自動的に連番が割り当てられていることが確認できます。以降に新規挿入されるレコードについても、1003、1004と順次採番されていきます。
まとめ
ALTER TABLE ... ADD COLUMN と AUTO_INCREMENT=値 を組み合わせれば、既存テーブルに自由な開始値を持つ自動採番カラムを簡単に追加できます。会員番号や受注番号など、特定の数値から始めたいIDを運用したい場合に非常に便利なテクニックなので、ぜひ活用してください。
-
MySQLでAUTO_INCREMENTの開始値を手動で指定してテーブルを作成する方法
MySQLでAUTO_INCREMENTの開始値を手動で指定してテーブルを作成する方法MySQLでは、テーブル作成時にAUTO_INCREMENTオプションを指定することで、連番の開始値を任意の数値に設定できます。これにより、IDを100や1000など、特定の値から採番することが可能になります。以下の手順で、開始値を100に設定したAUTO_INCREMENTカラムを持つテーブルを作成し、その動作を確認してみましょう。1. テーブルの作成まず、AUTO_INCREMENT=100を指定してテーブルを作成します。mysql> create table DemoTable1907 (
-
PythonでMySQLのテーブルに新しい列(カラム)を追加する方法
既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name