Trong hướng dẫn này, chúng ta sẽ xem cách đặt lại giá trị của cột tăng tự động trong MySQL bằng nhiều phương pháp
Trước khi chúng ta bắt đầu
Thuật ngữ “đặt lại tự động tăng” có thể có hai nghĩa khác nhau. Đầu tiên các bạn tìm cách đặt lại giá trị của cột auto_increment từ x thành y. Mặt khác, bạn có thể đang tìm cách xóa thuộc tính auto_increment khỏi cột và đặt lại về dạng bình thường
Trong hướng dẫn này, chúng ta sẽ thấy các phương pháp để giải quyết cả hai vấn đề
Chúng tôi có thể đặt lại giá trị của cột auto_increment thành bất kỳ giá trị mong muốn nào. Tuy nhiên, giá trị mới không được nhỏ hơn giá trị auto_increment cao nhất hiện tại vì nó không được phép đối với InnoDB
Mặt khác, nếu bạn muốn đặt lại giá trị auto_increment về 1 thì bạn có thể yêu cầu xóa tất cả dữ liệu khỏi bảng của mình. Tuy nhiên, nó không được khuyến khích
Đặt lại ví dụ về giá trị gia tăng tự động
Trước khi chuyển sang các phương pháp để đặt lại giá trị auto_increment, chúng ta sẽ tạo một bảng và chèn một số dữ liệu vào đó
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE cars[ id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR[100], price INT ]; INSERT INTO cars[name,price]VALUES["Toyota",200],["Tesla",150],["Maruti",300];
Bảng đã được tạo thành công. Bây giờ hãy hiển thị dữ liệu
SELECT * FROM cars;
Như bạn có thể thấy, giá trị của cột id tự động tăng lên vì nó được đặt thành thuộc tính auto_incerment
Đặt lại bằng Bảng thay đổi
Phương thức đầu tiên chúng ta có là sử dụng câu lệnh ALTER TABLE
Lưu ý rằng, chúng ta có thể đặt lại giá trị của cột auto_increment thành bất cứ thứ gì bạn muốn. Tuy nhiên, giá trị mới phải lớn hơn giá trị auto_increment cao nhất hiện tại
Hãy thử chèn một hàng mới vào bảng cars sau khi cập nhật auto_increment id thành 5
Cú pháp để đặt lại giá trị auto_increment là-
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE table_name AUTO_INCREMENT = value;
Như đã nêu trước đó, giá trị có thể lớn hơn giá trị auto_increment cao nhất hiện tại
Hãy cập nhật giá trị auto_increment và chèn một hàng mới
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE cars AUTO_INCREMENT = 5; INSERT INTO cars[name,price]values["Ford",120]; INSERT INTO cars[name,price]values["Porsche",420];
Ở đây, chúng tôi đã cập nhật giá trị auto_increment và sau đó chèn hai hàng để kiểm tra xem giá trị auto_increment có đi đúng hướng không
Hãy in dữ liệu bảng để kiểm tra xem nó có hoạt động không
Code language: SQL [Structured Query Language] [sql]
SELECT * FROM cars;
Như bạn có thể thấy, chúng ta có các giá trị auto_increment mới
Đặt lại mức tăng tự động bằng bảng cắt ngắn
Cách đơn giản nhất để đặt lại giá trị auto_increment id thành 1 là sử dụng câu lệnh TRUNCATE TABLE
Câu lệnh TRUNCATE TABLE sẽ xóa tất cả dữ liệu khỏi bảng và đặt lại giá trị tăng tự động về 1
Loại bỏ thuộc tính Auto-Increment
Để loại bỏ thuộc tính auto_increment, chúng ta có thể sử dụng câu lệnh ALTER TABLE
Ở đây, chúng ta sẽ loại bỏ thuộc tính auto_increment khỏi bảng ‘cars’
Trước tiên, hãy xem mô tả bảng nơi bạn có thể thấy rõ cột của bảng có thuộc tính auto_increment
Code language: SQL [Structured Query Language] [sql]
DESC cars;
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE cars MODIFY id INT;
Ở đây, chúng tôi chỉ sửa đổi cột id và viết lại nó mà không cần thuộc tính auto_increment
Bây giờ hãy xem mô tả bảng
Code language: SQL [Structured Query Language] [sql]
DESC cars;
Như bạn có thể thấy, hiện tại không có thuộc tính auto_increment nào cho cột id
Phần kết luận
Trong hướng dẫn này, chúng ta đã học cách đặt lại giá trị auto_increment theo nhiều cách khác nhau. Chúng tôi cũng đã học cách xóa thuộc tính auto_increment khỏi cột