在 MySQL 中重置自動增量
Preet Sanghavi
2022年5月13日
本教程將介紹如何在 MySQL 表中重置自動增量。
大多數使用 MySQL 的企業和組織需要同時將值插入到多個表中。雖然不可能將插入的記錄的所有欄位都設為非空,但在根據特定條件獲取這些記錄時可能會導致錯誤或引發錯誤。
為了解決這個問題,MySQL 為我們提供了一個自動增量欄位。它幫助我們在每次插入新記錄時在 MySQL 中新增或更新特定值。它通常用於與主鍵關聯的列。
隨著這個變數的值不斷增加,分析師必須控制這個變數的值。可以使用 ALTER TABLE
語句來完成。
讓我們嘗試更深入地理解這一點。
但是,在開始之前,我們會建立兩個虛擬表來使用。在這裡,我們建立了一個表 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
欄位的值,從而自動更新與主鍵關聯的列中記錄的值。
作者: Preet Sanghavi