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 フィールドの値を効率的に更新して、主キーに関連付けられた列のレコードの値を自動的に更新できます。
