3.6.9 & nbsp; sử dụng auto_increment
Thuộc tính AUTO_INCREMENT
có thể được sử dụng để tạo danh tính duy nhất cho các hàng mới:
CREATE TABLE animals [
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR[30] NOT NULL,
PRIMARY KEY [id]
];
INSERT INTO animals [name] VALUES
['dog'],['cat'],['penguin'],
['lax'],['whale'],['ostrich'];
SELECT * FROM animals;
Trở lại nào:
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
Không có giá trị nào được chỉ định cho cột AUTO_INCREMENT
, do đó tự động được chỉ định các số trình tự của MySQL. Bạn cũng có thể gán 0 một cách rõ ràng cho cột để tạo các số chuỗi, trừ khi chế độ ____10 SQL được bật. Ví dụ:
INSERT INTO animals [id,name] VALUES[0,'groundhog'];
Nếu cột được khai báo
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
1, cũng có thể gán +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
2 cho cột để tạo số chuỗi. Ví dụ:INSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
Khi bạn chèn bất kỳ giá trị nào khác vào cột AUTO_INCREMENT
, cột được đặt thành giá trị đó và chuỗi được đặt lại để giá trị được tạo tự động tiếp theo theo tuần tự từ giá trị cột lớn nhất. Ví dụ:
INSERT INTO animals [id,name] VALUES[100,'rabbit'];
INSERT INTO animals [id,name] VALUES[NULL,'mouse'];
SELECT * FROM animals;
+-----+-----------+
| id | name |
+-----+-----------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
| 7 | groundhog |
| 8 | squirrel |
| 100 | rabbit |
| 101 | mouse |
+-----+-----------+
Cập nhật giá trị cột AUTO_INCREMENT
hiện có cũng đặt lại chuỗi AUTO_INCREMENT
.
Bạn có thể truy xuất giá trị AUTO_INCREMENT
được tạo tự động gần đây nhất với hàm
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
7 SQL hoặc hàm API +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
8 C. Các chức năng này là đặc trưng cho kết nối, vì vậy các giá trị trả về của chúng không bị ảnh hưởng bởi một kết nối khác cũng đang thực hiện các phần chèn. Sử dụng kiểu dữ liệu số nguyên nhỏ nhất cho cột AUTO_INCREMENT
đủ lớn để giữ giá trị chuỗi tối đa bạn yêu cầu. Khi cột đạt đến giới hạn trên của kiểu dữ liệu, lần thử tiếp theo để tạo số thứ tự không thành công. Sử dụng thuộc tính
INSERT INTO animals [id,name] VALUES[0,'groundhog'];
0 nếu có thể cho phép một phạm vi lớn hơn. Ví dụ: nếu bạn sử dụng INSERT INTO animals [id,name] VALUES[0,'groundhog'];
1, số trình tự cho phép tối đa là 127. Đối với INSERT INTO animals [id,name] VALUES[0,'groundhog'];
2, tối đa là 255. Xem Phần & NBSP; Đối với phạm vi của tất cả các loại số nguyên.Ghi chú
Để chèn nhiều hàng,
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
7 và +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
8 thực sự trả lại phím AUTO_INCREMENT
từ hàng đầu tiên của các hàng được chèn. Điều này cho phép chèn nhiều hàng được sao chép chính xác trên các máy chủ khác trong thiết lập sao chép.first of the inserted rows. This enables multiple-row inserts to be reproduced correctly on other servers in a replication setup. Để bắt đầu với giá trị AUTO_INCREMENT
khác ngoài 1, hãy đặt giá trị đó bằng
INSERT INTO animals [id,name] VALUES[0,'groundhog'];
7 hoặc INSERT INTO animals [id,name] VALUES[0,'groundhog'];
8, như thế này:mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Ghi chú Myisam
Đối với các bảng
9, bạn có thể chỉ địnhINSERT INTO animals [id,name] VALUES[0,'groundhog'];
AUTO_INCREMENT
trên cột thứ cấp trong chỉ mục nhiều cột. Trong trường hợp này, giá trị được tạo cho cộtAUTO_INCREMENT
được tính là
2] + 1 trong đó tiền tố = ________ 33. Điều này rất hữu ích khi bạn muốn đặt dữ liệu vào các nhóm được đặt hàng.INSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
CREATE TABLE animals [ grp ENUM['fish','mammal','bird'] NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR[30] NOT NULL, PRIMARY KEY [grp,id] ] ENGINE=MyISAM; INSERT INTO animals [grp,name] VALUES ['mammal','dog'],['mammal','cat'], ['bird','penguin'],['fish','lax'],['mammal','whale'], ['bird','ostrich']; SELECT * FROM animals ORDER BY grp,id;
Trở lại nào:
+--------+----+---------+ | grp | id | name | +--------+----+---------+ | fish | 1 | lax | | mammal | 1 | dog | | mammal | 2 | cat | | mammal | 3 | whale | | bird | 1 | penguin | | bird | 2 | ostrich | +--------+----+---------+
Không có giá trị nào được chỉ định cho cột
AUTO_INCREMENT
, do đó tự động được chỉ định các số trình tự của MySQL. Bạn cũng có thể gán 0 một cách rõ ràng cho cột để tạo các số chuỗi, trừ khi chế độ ____10 SQL được bật. Ví dụ:Nếu cột được khai báo
1, cũng có thể gán+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
2 cho cột để tạo số chuỗi. Ví dụ:+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
Khi bạn chèn bất kỳ giá trị nào khác vào cột AUTO_INCREMENT
, cột được đặt thành giá trị đó và chuỗi được đặt lại để giá trị được tạo tự động tiếp theo theo tuần tự từ giá trị cột lớn nhất. Ví dụ:
Cập nhật giá trị cột AUTO_INCREMENT
hiện có cũng đặt lại chuỗi AUTO_INCREMENT
.
Bạn có thể truy xuất giá trị
AUTO_INCREMENT
được tạo tự động gần đây nhất với hàm
7 SQL hoặc hàm API+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
8 C. Các chức năng này là đặc trưng cho kết nối, vì vậy các giá trị trả về của chúng không bị ảnh hưởng bởi một kết nối khác cũng đang thực hiện các phần chèn.+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
Sử dụng kiểu dữ liệu số nguyên nhỏ nhất cho cột
AUTO_INCREMENT
đủ lớn để giữ giá trị chuỗi tối đa bạn yêu cầu. Khi cột đạt đến giới hạn trên của kiểu dữ liệu, lần thử tiếp theo để tạo số thứ tự không thành công. Sử dụng thuộc tính
0 nếu có thể cho phép một phạm vi lớn hơn. Ví dụ: nếu bạn sử dụngINSERT INTO animals [id,name] VALUES[0,'groundhog'];
1, số trình tự cho phép tối đa là 127. Đối vớiINSERT INTO animals [id,name] VALUES[0,'groundhog'];
2, tối đa là 255. Xem Phần & NBSP; Đối với phạm vi của tất cả các loại số nguyên.INSERT INTO animals [id,name] VALUES[0,'groundhog'];
Ghi chú
Để chèn nhiều hàng,
7 và+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
8 thực sự trả lại phím+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
AUTO_INCREMENT
từ hàng đầu tiên của các hàng được chèn. Điều này cho phép chèn nhiều hàng được sao chép chính xác trên các máy chủ khác trong thiết lập sao chép.Để bắt đầu với giá trị
AUTO_INCREMENT
khác ngoài 1, hãy đặt giá trị đó bằng
7 hoặcINSERT INTO animals [id,name] VALUES[0,'groundhog'];
8, như thế này:INSERT INTO animals [id,name] VALUES[0,'groundhog'];
Ghi chú Myisam
Đối với các bảng
9, bạn có thể chỉ địnhINSERT INTO animals [id,name] VALUES[0,'groundhog'];
AUTO_INCREMENT
trên cột thứ cấp trong chỉ mục nhiều cột. Trong trường hợp này, giá trị được tạo cho cộtAUTO_INCREMENT
được tính là
2] + 1 trong đó tiền tố = ________ 33. Điều này rất hữu ích khi bạn muốn đặt dữ liệu vào các nhóm được đặt hàng.INSERT INTO animals [id,name] VALUES[NULL,'squirrel'];