MySQL で自動インクリメントをリセット

Preet Sanghavi 2022年3月28日
MySQL で自動インクリメントをリセット

このチュートリアルでは、MySQL テーブルの自動インクリメントをリセットする方法を紹介します。

MySQL を使用するほとんどの企業や組織は、複数のテーブルに同時に値を挿入する必要があります。レコードのすべてのフィールドを空にしないように挿入することはできませんが、特定の条件に基づいてこれらのレコードをフェッチするときに、バグが発生したり、エラーが発生したりする可能性があります。

この問題を解決するために、MySQL は自動インクリメントフィールドで私たちを支援します。これは、新しいレコードが挿入されるたびに MySQL の特定の値を追加または更新するのに役立ちます。これは通常、主キーに関連付けられた列に使用されます。

この変数の値が増加し続けると、アナリストがこの変数の値を制御することが不可欠になります。これは、ALTER TABLE ステートメントを使用して実行できます。

これをもっと深く理解してみましょう。

ただし、開始する前に、使用する 2つのダミーテーブルを作成します。ここでは、いくつかの行とともにテーブル student_dates_1 を作成します。

-- create the table student_dates_3
CREATE TABLE student_dates_3(
  stu_id int NOT NULL AUTO_INCREMENT,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

INSERT ステートメントを使用した student_dates テーブルへのエントリの挿入

前のクエリは、student_dates という名前のテーブルを作成します。INSERT ステートメントを使用して、数人の生徒のデータを追加してみましょう。この操作は次のように実行できます。

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 ("Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 ("Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 ("Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 ("Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

前述のコードは、テーブル student_dates に学生データを入力します。

SELECT * from student_dates_3;

出力:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

AUTO_INCREMENT の値をリセットする

AUTO_INCREMENT 変数の値を特定の値に更新するには、次の構文を使用できます。

ALTER TABLE name_of_the_table AUTO_INCREMENT = x;

前述のクエリで、x は、指定されたテーブルに追加する必要がある更新された値を表します。このロジックは、次のクエリを使用して、student_dates_3 テーブルの変数の値を更新するために使用できます。

ALTER TABLE student_dates_3 AUTO_INCREMENT = 100;

レコードを追加すると、主キーstu_idAUTO_INCREMENT 変数に設定された値で自動的に更新されます。次に、student_dates_3 テーブルに値を挿入しましょう。

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Rutvik",STR_TO_DATE('16-January-2001', '%d-%M-%Y'));

Rutvik という名前の学生用の stu_id100 として用意します。これは、次のクエリで確認できます。

SELECT * from student_dates_3;

出力:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19
6		Rutvik			2001-16-01

したがって、ALTER TABLE ステートメントと AUTO_INCREMENT キーワードを使用すると、AUTO_INCREMENT フィールドの値を効率的に更新して、主キーに関連付けられた列のレコードの値を自動的に更新できます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub