MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでID列(AUTO_INCREMENT)のシード値を取得・変更する方法

MySQLでAUTO_INCREMENT(ID列)の現在のシード値を確認するには、SHOW VARIABLESコマンドを使用します。

mysql> SHOW VARIABLES LIKE 'auto_inc%';

出力結果

上記のコマンドを実行すると、以下のような出力が得られます。

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.95 sec)

「auto_increment_increment」は連番の増分値、「auto_increment_offset」は開始時のオフセット値を表しています。これらの設定により、AUTO_INCREMENTの挙動を外部から制御することも可能です。

ここからは、実際にテーブルを作成してAUTO_INCREMENTの動作を確認していきましょう。

テーブルの作成

まず、AUTO_INCREMENTを持つテーブルを作成します。

mysql> create table DemoTable
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );
Query OK, 0 rows affected (0.94 sec)

レコードの挿入

INSERTコマンドを使ってレコードを2件追加します。AUTO_INCREMENT列は値を指定しなくても自動的に採番されます。

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.44 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.26 sec)

レコードの確認

SELECT文でテーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable;

出力結果

+-----------+
| StudentId |
+-----------+
| 1         |
| 2         |
+-----------+
2 rows in set (0.00 sec)

デフォルト設定では、1から順番に連番が振られていることがわかります。

AUTO_INCREMENTの開始値を変更する

次に、ALTER TABLE文を使ってAUTO_INCREMENTのシード値を1000に変更してみます。

mysql> alter table DemoTable AUTO_INCREMENT=1000;
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0

変更後、再度レコードを挿入します。

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.51 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (1.37 sec)

SELECT文で結果を確認しましょう。

mysql> select *from DemoTable;

出力結果

+-----------+
| StudentId |
+-----------+
|         1 |
|         2 |
|      1000 |
|      1001 |
+-----------+
4 rows in set (0.00 sec)

このように、AUTO_INCREMENTの値を変更した後に入力されたレコードには、指定した値(1000)以降の連番が自動的に採番されることが確認できます。SHOW VARIABLESコマンドと組み合わせれば、現在のシード値の確認と変更の両方を柔軟に行うことが可能です。

  1. MySQLで列の値の先頭に000(ゼロ埋め)を追加する方法

    MySQLで列の値に000(ゼロ)を追加するには?MySQLで数値の先頭に「000」のようなゼロを追加して表示したい場合は、ZEROFILL属性を使用します。ZEROFILLを指定した列では、設定された表示幅に満たない桁数が自動的に0で埋められます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1913 ( Code int(4) ZEROFILL AUTO_INCREMENT NOT NULL, PRIMARY KEY(Code) ); Query OK, 0 rows affected (0.00

  2. MySQLで列の最大値を取得する方法をわかりやすく解説

    MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(