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