MySQL に自動インクリメント列を追加する

Shraddha Paghdar 2024年2月15日
MySQL に自動インクリメント列を追加する

今日の投稿では、MySQL に自動インクリメント カラムを追加する方法を学びます。

MySQL に自動インクリメント列を追加する

テーブルを構築するとき、データベース内に一意の ID がない場合があり、主キーの選択が問題になります。 このような問題に取り組むには、各レコードに手動で一意のキーを割り当てる必要がありますが、これには通常時間がかかります。

その結果、追加された新しいレコードごとに数値の主キー値を作成する自動インクリメント機能を使用できます。

AUTO_INCREMENT キーワードは、自動インクリメント機能のために MySQL で使用されます。 AUTO_INCREMENT は 1 から始まり、デフォルトで 1 ずつ増加します。

前の概念をさらに理解するために、次の例を検討してください。

例 1: 新しいテーブルに列を追加します。

CREATE TABLE Employees(
    employee_id INT AUTO_INCREMENT PRIMARY KEY,
    first_Name VARCHAR(255),
    last_Name VARCHAR(255)
);

上記の例では、フィールド employee_idfirst_Name、および last_Name を持つ Employees テーブルを作成しました。 これにより、AUTO_INCREMENT を使用して employee_id が自動生成され、データベースの主キーになります。

例 2: 既存のテーブルの列を変更します。

ALTER TABLE `Employees`
    MODIFY COLUMN `employee_id` INT NOT NULL AUTO_INCREMENT;

前の例では、フィールド employee_idfirst_Name、および last_Name を持つ Employees テーブルが既にあります。 employee_id 列の既存の属性を変更することにより、AUTO_INCREMENT を使用して employee_id を生成します。

自動的に挿入されるため、Employees テーブルに新しいレコードを追加するときに、employee_id の値を指定する必要はありません。 最初のレコードのキーは 1 になり、後続の各レコードのキーは 1 ずつ増加します。

INSERT INTO Employees(first_Name, last_Name)
VALUES
  ('John', 'Doe'),
  ('Smith', 'Will'),
  ('Tony', 'Stark');

以下に示すように ALTER TABLE コマンドを使用して、デフォルトの開始値を変更できます。

ALTER TABLE Employees AUTO_INCREMENT = new_value;

次のように、new_value をデフォルトの開始値として設定できます。

ALTER TABLE Employees AUTO_INCREMENT = 1001;

この場合、利用したい初期値は new_value です。 MySQL サーバー変数 AUTO_INCREMENT に新しい間隔値を与えて、AUTO_INCREMENT 間隔値を 1 以外の数値に変更します。

この例では、この数を 1001 に設定しました。

上記のコード行を、MySQL と互換性のあるブラウザーで実行します。 次の結果が表示されます。

MySQL 自動インクリメント列を追加

デフォルトの開始値を変更した後:

MySQL 自動インクリメント列の更新

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - MySQL Column