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_id は AUTO_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_id を 100 として用意します。これは、次のクエリで確認できます。
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 フィールドの値を効率的に更新して、主キーに関連付けられた列のレコードの値を自動的に更新できます。
