Tự động tăng cho phép một số duy nhất được tạo tự động khi một bản ghi mới được chèn vào bảng
Thường thì đây là trường khóa chính mà chúng tôi muốn được tạo tự động mỗi khi một bản ghi mới được chèn vào
Từ khóa AUTO_INCREMENT của MySQL
MySQL sử dụng từ khóa
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]0 để thực hiện tính năng tự động tăng
Theo mặc định, giá trị bắt đầu cho
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]0 là 1 và giá trị này sẽ tăng thêm 1 cho mỗi bản ghi mới
Câu lệnh SQL sau đây xác định cột "Personid" là trường khóa chính tăng tự động trong bảng "Persons"
TẠO BẢNG Người [
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar[255] NOT NULL,
FirstName varchar[255],
Age int,
PRIMARY KEY [Personid]
];
Để chuỗi
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]0 bắt đầu với một giá trị khác, hãy sử dụng câu lệnh SQL sau
THAY ĐỔI BẢNG Người AUTO_INCREMENT=100;
Khi chúng tôi chèn một bản ghi mới vào bảng "Người", chúng tôi KHÔNG phải chỉ định giá trị cho cột "Người" [một giá trị duy nhất sẽ được thêm tự động]
CHÈN VÀO Người [Tên,Họ]
GIÁ TRỊ ['Lars','Monsen'];
Câu lệnh SQL trên sẽ chèn một bản ghi mới vào bảng "Persons". Cột "Personid" sẽ tự động được gán một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen"
Vì đây là một trong những câu hỏi thường gặp nhất đối với phpmyadmin, bạn có thể tìm hiểu thêm về điều này trong blog này. http. //trebleclick. blogspot. com/2009/01/mysql-set-auto-increment-in-phpmyadmin. html
Đối với một bảng trống, một cách khác để đặt lại thuộc tính auto_increment là chạy
TRUNCATE TABLE mydb.tablename;
Đừng chạy cái này nếu bạn có dữ liệu trong đó. Nếu bạn muốn vòi dữ liệu, thì hãy là khách của tôi
Trong phpmyadmin, chỉ cần nhấp vào tab
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]3, nhập lệnh và chạy nó
Đối với một bảng không trống, bạn có thể muốn điều chỉnh thuộc tính auto_increment thành id cao nhất hiện có được sử dụng trong trường hợp các mục nhập cao hơn đã bị xóa
MySQL có từ khóa AUTO_INCREMENT để thực hiện tăng tự động. Giá trị bắt đầu cho AUTO_INCREMENT là 1, là giá trị mặc định. Nó sẽ tăng thêm 1 cho mỗi bản ghi mới
Để lấy id tăng tự động tiếp theo trong MySQL, chúng ta có thể sử dụng hàm last_insert_id[] từ MySQL hoặc auto_increment với SELECT
Tạo bảng, với “id” là tự động tăng
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]
Chèn bản ghi vào bảng
mysql> insert into NextIdDemo values[1]; Query OK, 1 row affected [0.22 sec] mysql> insert into NextIdDemo values[2]; Query OK, 1 row affected [0.20 sec] mysql> insert into NextIdDemo values[3]; Query OK, 1 row affected [0.14 sec]
Để hiển thị tất cả các bản ghi
mysql> select *from NextIdDemo;
Sau đây là đầu ra
+----+ | id | +----+ | 1 | | 2 | | 3 | +----+ 3 rows in set [0.04 sec]
Chúng tôi đã chèn 3 bản ghi ở trên. Do đó, id tiếp theo phải là 4
Sau đây là cú pháp để biết id tiếp theo
SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "yourDatabaseName" AND TABLE_NAME = "yourTableName"
Sau đây là truy vấn
mysql> SELECT AUTO_INCREMENT -> FROM information_schema.TABLES -> WHERE TABLE_SCHEMA = "business" -> AND TABLE_NAME = "NextIdDemo";
Đây là đầu ra hiển thị mức tăng tự động tiếp theo
+----------------+ | AUTO_INCREMENT | +----------------+ | 4 | +----------------+ 1 row in set [0.25 sec]
Kiểm tra tình huống này – bạn muốn nhập vào bảng MySQL hiện có dữ liệu đã được chuẩn bị sẵn trong CSV trong e. g. PhpMyAdmin, và sau đó bạn có thể thấy lỗi MySQL
#1062 – Sao chép mục nhập '34' cho khóa 'PRIMARY'
Nhưng bạn hãy xem trong bảng MySQL và bạn có thể thấy giá trị “id” cuối cùng là, giả sử, 30
Có chuyện gì? . Để kiểm tra nó, bạn phải vào PhpMyAdmin vào cấu trúc của bảng MySQL và ở dưới cùng của trang là bảng “Số liệu thống kê hàng” như trên hình ảnh bên dưới và có trường “chỉ mục tự động tiếp theo” cho chúng tôi biết rằng “giá trị của lần tự động cuối cùng
Kiểm tra cách thay đổi giá trị của auto_increment tiếp theo trong MySQL
Vì vậy, chúng tôi biết cách kiểm tra giá trị gia tăng tự động hiện tại [trong hầu hết các trường hợp tương ứng với giá trị ID của hàng]. Nhưng bây giờ hãy tập trung vào cách thay đổi giá trị của autoindex tiếp theo
Đừng lo lắng. Nó rất dễ. Chỉ cần sử dụng cú pháp như bên dưới trong yêu cầu SQL [trong PhpMyAdmin trong bảng mong muốn, nhấp vào tab “SQL” và nhập mã bên dưới vào trường văn bản]. Tất nhiên, thay cho
mysql> create table NextIdDemo -> [ -> id int auto_increment, -> primary key[id] -> ]; Query OK, 0 rows affected [1.31 sec]4, hãy đặt đúng số bạn muốn đặt làm giá trị gia tăng tự động tiếp theo________số 8
Trong trường hợp của tôi, đó sẽ là mã MySQL sau để thay đổi giá trị gia tăng tự động tiếp theo
ALTER TABLE my_table AUTO_INCREMENT = 30;
Bạn có thể thấy sự thay đổi trong tab cấu trúc bảng, trong “Thống kê hàng” như trên hình bên dưới
… và bây giờ nó đã hoàn thành. Bây giờ bạn đã biết cách thay đổi giá trị autoindex hoặc “auto increment” trong bảng MySQL bằng PhpMyAdmin. Tôi hy vọng rằng bài viết này hữu ích cho bạn