在 MySQL 中重置自動增量

Preet Sanghavi 2022年5月13日
在 MySQL 中重置自動增量

本教程將介紹如何在 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 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