Làm cách nào để đặt lại danh tính khóa chính trong MySQL?

Chúng ta sẽ bắt đầu bằng cách tạo một bảng, chèn một số dữ liệu vào đó, sau đó chọn * để xem dữ liệu đã chèn

# create table 
CREATE TABLE sales_data (
    sale_person_id INT AUTO_INCREMENT,
    sale_person_name VARCHAR(255),
    commission_percentage INT,
    no_products_sold INT,
    PRIMARY KEY(sale_person_id)
);
# insert data
 INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
 VALUES("Aditi",10,200);
 INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
 VALUES("Furan",5,300); 
 INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
 VALUES("Veronica",10,250);
 INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
 VALUES("Atharv",25,150); 
# select *
SELECT * FROM sales_data;

đầu ra. -

Làm cách nào để đặt lại danh tính khóa chính trong MySQL?
Hình 1. 1

Cách đặt lại AUTO_INCREMENT trong MySQL

Chúng ta sẽ xem xét cú pháp theo sau là một ví dụ

quảng cáo

cú pháp. -

ALTER TABLE <table_name> AUTO_INCREMENT = <value> ;

Where   is the name of the table you want to reset the auto increment for a column. is the value you want to reset for the sequence.

Chúng ta hãy xem ví dụ. Chúng tôi sẽ đặt lại giá trị auto_increment cho bảng sales_data đã tạo ở trên để bắt đầu từ 1000

ALTER TABLE sales_data AUTO_INCREMENT = 1000;

Chúng tôi nhận được thông báo. ALTER TABLE sales_data AUTO_INCREMENT = 1000 0 bản ghi bị ảnh hưởng. 0 bản sao. 0 cảnh báo. 0 0. 016 giây

Bây giờ hãy chèn thêm một vài hàng và chọn * trên sales_data để xem sự thay đổi

INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Debolina",35,500); 
INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Erick",20,350); 
INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Rasmus",25,355); 
SELECT * FROM sales_data;

đầu ra. -

Làm cách nào để đặt lại danh tính khóa chính trong MySQL?
Hình 1. 2

Như chúng ta có thể thấy trong hình 1. 2, chúng tôi đã có thể đặt lại giá trị auto_increment thành công và bây giờ tất cả các hàng mới sẽ có sale_person_id được tăng thêm một bắt đầu từ 1000

Đặt lại bảng cắt bớt AUTO_INCREMENT trong MySQL

Nếu bạn muốn xóa tất cả dữ liệu trước đó khỏi bảng và sau đó đặt lại giá trị auto_increment thì sao?

Giải pháp là cắt bớt bảng và sau đó đặt giá trị auto_increment mong muốn. Quan sát đoạn mã dưới đây và xuất ra

TRUNCATE TABLE sales_data;
ALTER TABLE sales_data AUTO_INCREMENT = 1;

Chúng tôi sẽ chèn lại một số dữ liệu và chọn * trên bảng sales_data để xem sự thay đổi

INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Debolina",35,500); 
INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Erick",20,350); 
INSERT INTO sales_data (sale_person_name,commission_percentage,no_products_sold) 
VALUES("Rasmus",25,355); 
SELECT * FROM sales_data;

đầu ra. -

Làm cách nào để đặt lại danh tính khóa chính trong MySQL?
Hình 1. 3

Ghi chú. Chúng ta có thể thay đổi giá trị auto_increment thành bất kỳ số nguyên nào ở đây chứ không chỉ 1.

Đặt lại AUTO_INCREMENT bằng cột thả trong MySQL

Một cách dễ dàng khác để đặt lại giá trị auto_increment là bỏ cột và đặt lại giá trị. Trong ví dụ dưới đây, chúng tôi sẽ sử dụng bảng sales_data được tạo ở trên với các hàng, như thể hiện trong hình 1. 1. Quan sát truy vấn dưới đây

ALTER TABLE sales_data DROP sale_person_id ;
ALTER TABLE sales_data ADD sale_person_id INT PRIMARY KEY AUTO_INCREMENT FIRST;

Trong các truy vấn trên, chúng tôi sẽ loại bỏ cột sale_person_id và sau đó thêm lại cột này, đặt cột đó làm khóa chính và đặt giá trị auto_increment của cột bắt đầu từ '1'

Đặt lại AUTO_INCREMENT sau khi xóa trong MySQL

Điều gì xảy ra nếu các mục nhập gần đây nhất bị xóa và chúng tôi muốn đặt lại giá trị auto_increment?

Chúng tôi có thể đặt lại giá trị auto_increment trở lại bắt đầu ngay sau id cuối cùng của hàng trong bảng. Ví dụ: nếu hàng cuối cùng có giá trị id là '7' và các hàng có id '8' và '9' đã bị xóa. Chèn một hàng mới vào bảng sẽ cung cấp giá trị '10' cho id trừ khi chúng tôi thực thi mã bên dưới

ALTER TABLE sales_data AUTO_INCREMENT=1;

Sau khi thực hiện dòng này, id của các hàng mới sẽ bắt đầu từ '7' thay vì '10'

Có hiểu biết chi tiết về cách đặt lại auto_increment với các ví dụ từ. ĐẶT LẠI AUTO_INCREMENT SAU KHI XÓA

Cách đặt lại AUTO_INCREMENT trong bàn làm việc của MySQL

Trong trường hợp chúng tôi không muốn viết truy vấn, chúng tôi cũng có thể đặt giá trị auto_increment bằng bàn làm việc của MySQL, chúng tôi có thể thực hiện theo các bước dưới đây

Làm cách nào để đặt lại cột nhận dạng trong MySQL?

Trong MySQL, cú pháp để đặt lại cột AUTO_INCREMENT bằng câu lệnh ALTER TABLE là. ALTER TABLE table_name AUTO_INCREMENT = value; table_name . Tên của bảng có cột AUTO_INCREMENT mà bạn muốn đặt lại .

Làm cách nào để đặt lại id trong MySQL sau khi xóa?

ALTER TABLE `table` AUTO_INCREMENT = number; Thay thế 'số' bằng kết quả của lệnh trước cộng một và thay thế bảng bằng tên bảng. Nếu bạn đã xóa tất cả các hàng trong bảng, thì bạn có thể chạy lệnh thay đổi bảng và đặt lại về 0.

Chúng tôi có thể đặt lại giá trị cột khóa chính không?

Việc đặt lại khóa chính của bảng có nghĩa là đặt lại thuộc tính auto_increment thành 1 . Cú pháp như sau để đặt lại khóa chính của bảng.

Làm cách nào để đặt lại số tự động trong MySQL?

Để đặt lại cột tăng tự động, sử dụng lệnh TRUNCATE TABLE . Sau đó, khi chèn, nó sẽ đặt lại cột.