Hướng dẫn MySQL này giải thích cách tạo các chuỗi bằng cách sử dụng thuộc tính Auto_increment trong MySQL với cú pháp và ví dụ.create sequences using the AUTO_INCREMENT attribute in MySQL with syntax and examples.
Sự mô tả
Trong MySQL, bạn có thể tạo một cột chứa chuỗi số [1, 2, 3, v.v.] bằng cách sử dụng thuộc tính Auto_increment. Thuộc tính Auto_increment được sử dụng khi bạn cần tạo một số duy nhất để hoạt động như một khóa chính trong bảng.
Cú pháp
Cú pháp để tạo một chuỗi [hoặc sử dụng thuộc tính auto_increment] trong MySQL là:
CREATE TABLE table_name [ column1 datatype NOT NULL AUTO_INCREMENT, column2 datatype [ NULL | NOT NULL ], ... ];Auto_incrementthe Thuộc tính sử dụng khi bạn muốn MySQL tự động gán một chuỗi số cho một trường [về bản chất, tạo trường autonumber] .null hoặc không cột NULLEACH nên được định nghĩa là null hoặc không null. Nếu tham số này bị bỏ qua, cơ sở dữ liệu giả định NULL là mặc định.
Ghi chú
- Bạn có thể sử dụng chức năng Last_insert_id để tìm giá trị cuối cùng được gán bởi trường auto_increment.
Thí dụ
Chúng ta hãy xem một ví dụ về cách sử dụng trình tự hoặc thuộc tính auto_increment trong MySQL.
Ví dụ:
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
Ví dụ MySQL Auto_increment này tạo một bảng có tên Danh bạ có 4 cột và một khóa chính:
- Cột đầu tiên được gọi là Contact_id được tạo dưới dạng kiểu dữ liệu INT [chiều dài tối đa 11 chữ số] và không thể chứa các giá trị null. Nó được đặt làm trường tự động_increment có nghĩa là nó là trường autonumber [bắt đầu từ 1 và tăng thêm 1, trừ khi có quy định khác.]
- Cột thứ hai được gọi là last_name là kiểu dữ liệu varchar [chiều dài tối đa 30 ký tự] và không thể chứa các giá trị null.
- Cột thứ ba được gọi là First_name là kiểu dữ liệu varchar [chiều dài tối đa 25 ký tự] và có thể chứa các giá trị null.
- Cột thứ tư được gọi là sinh nhật là kiểu dữ liệu ngày và có thể chứa các giá trị null.
- Khóa chính được gọi là DEFFELLS_PK và được đặt thành cột Contact_id.
Đặt giá trị khởi động Auto_increment
Bây giờ bạn đã tạo một bảng bằng thuộc tính auto_increment, làm thế nào bạn có thể thay đổi giá trị bắt đầu cho trường auto_increment nếu bạn không muốn bắt đầu lúc 1?
Bạn có thể sử dụng câu lệnh ALTER BẢNG để thay đổi hoặc đặt giá trị tiếp theo được gán bởi auto_increment.
Cú pháp
Cú pháp để tạo một chuỗi [hoặc sử dụng thuộc tính auto_increment] trong MySQL là:
CREATE TABLE table_name [ column1 datatype NOT NULL AUTO_INCREMENT, column2 datatype [ NULL | NOT NULL ], ... ];Auto_incrementthe Thuộc tính sử dụng khi bạn muốn MySQL tự động gán một chuỗi số cho một trường [về bản chất, tạo trường autonumber] .null hoặc không cột NULLEACH nên được định nghĩa là null hoặc không null. Nếu tham số này bị bỏ qua, cơ sở dữ liệu giả định NULL là mặc định.
Thí dụ
Chúng ta hãy xem một ví dụ về cách sử dụng trình tự hoặc thuộc tính auto_increment trong MySQL.
Ví dụ:
ALTER TABLE contacts AUTO_INCREMENT = 50;
Ví dụ MySQL Auto_increment này tạo một bảng có tên Danh bạ có 4 cột và một khóa chính:
Cột đầu tiên được gọi là Contact_id được tạo dưới dạng kiểu dữ liệu INT [chiều dài tối đa 11 chữ số] và không thể chứa các giá trị null. Nó được đặt làm trường tự động_increment có nghĩa là nó là trường autonumber [bắt đầu từ 1 và tăng thêm 1, trừ khi có quy định khác.]
Cột thứ hai được gọi là last_name là kiểu dữ liệu varchar [chiều dài tối đa 30 ký tự] và không thể chứa các giá trị null.
Cột thứ ba được gọi là First_name là kiểu dữ liệu varchar [chiều dài tối đa 25 ký tự] và có thể chứa các giá trị null.
3.6.9 & nbsp; sử dụng auto_increment
Thuộc tính
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 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 |
+----+---------+
Trong trường hợp này [khi cột
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 là một phần của chỉ mục nhiều cột], các giá trị
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 được sử dụng lại nếu bạn xóa hàng với giá trị
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 lớn nhất trong bất kỳ nhóm nào. Điều này xảy ra ngay cả đối với các bảng
ALTER TABLE contacts AUTO_INCREMENT = 50;3, trong đó các giá trị
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 thường không được sử dụng lại.
INSERT INTO animals [id,name] VALUES[0,'groundhog'];
Nếu cột
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 là một phần của nhiều chỉ mục, MySQL sẽ tạo các giá trị chuỗi bằng cách sử dụng chỉ mục bắt đầu với cột
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2, nếu có. Ví dụ: nếu bảng
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;
5 chứa các chỉ mục 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;
6 và 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;
7, MySQL sẽ bỏ qua 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;
8 để tạo các giá trị chuỗi. Do đó, bảng sẽ chứa một chuỗi duy nhất, không phải là một chuỗi trên mỗi giá trị 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;
9.INSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
Đọc thêm
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 |
+-----+-----------+
Thông tin thêm về
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 có sẵn tại đây:
Cách gán thuộc tính
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 cho một cột: Phần & nbsp; 13.1.20, Tạo câu lệnh bảng và phần & nbsp; 13.1.9, câu lệnh bảng thay đổi.
Cách
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 hoạt động tùy thuộc vào chế độ
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];4 SQL: Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.
Ghi chú
Để chèn nhiều hàng,
ALTER TABLE table_name AUTO_INCREMENT = start_value;1 và
ALTER TABLE table_name AUTO_INCREMENT = start_value;2 thực sự trả lại phím
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 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ị
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 khác ngoài 1, hãy đặt giá trị đó bằng
ALTER TABLE contacts AUTO_INCREMENT = 50;1 hoặc
ALTER TABLE contacts AUTO_INCREMENT = 50;2, như thế này:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Ghi chú Myisam
Đối với các bảng
ALTER TABLE contacts AUTO_INCREMENT = 50;
3, bạn có thể chỉ địnhCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 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ộtCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 được tính làALTER TABLE contacts AUTO_INCREMENT = 50;
6] + 1 trong đó tiền tố = ________ 37. Đ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.CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
0Trở lại nào:
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
1Trong trường hợp này [khi cột
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 là một phần của chỉ mục nhiều cột], các giá trịCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 được sử dụng lại nếu bạn xóa hàng với giá trịCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 lớn nhất trong bất kỳ nhóm nào. Điều này xảy ra ngay cả đối với các bảngALTER TABLE contacts AUTO_INCREMENT = 50;
3, trong đó các giá trịCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 thường không được sử dụng lại.Nếu cột
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 là một phần của nhiều chỉ mục, MySQL sẽ tạo các giá trị chuỗi bằng cách sử dụng chỉ mục bắt đầu với cộtCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2, nếu có. Ví dụ: nếu bảng
5 chứa các chỉ mụcCREATE 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;
6 và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;
7, MySQL sẽ bỏ quaCREATE 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;
8 để tạo các giá trị chuỗi. Do đó, bảng sẽ chứa một chuỗi duy nhất, không phải là một chuỗi trên mỗi giá trị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;
9.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;
Đọc thêm
Thông tin thêm về
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];2 có sẵn tại đây:
Cách gán thuộc tính
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 cho một cột: Phần & nbsp; 13.1.20, Tạo câu lệnh bảng và phần & nbsp; 13.1.9, câu lệnh bảng thay đổi.Cách
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 hoạt động tùy thuộc vào chế độCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
4 SQL: Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.Cách sử dụng hàm
ALTER TABLE table_name AUTO_INCREMENT = start_value;
1 để tìm hàng chứa giá trịCREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 gần đây nhất: Phần & NBSP; 12.16, Chức năng thông tin của Hồi giáo.Đặt giá trị
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 sẽ được sử dụng: Phần & NBSP; 5.1.8, các biến hệ thống máy chủ của Cameron.Phần & NBSP; 15.6.1.6, Xử lý Auto_increment trong Innodb,
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 và sao chép: Phần & nbsp; 17.5.1.1, sao chép và tự động_increment.Các biến hệ thống máy chủ liên quan đến
CREATE TABLE contacts [ contact_id INT[11] NOT NULL AUTO_INCREMENT, last_name VARCHAR[30] NOT NULL, first_name VARCHAR[25], birthday DATE, CONSTRAINT contacts_pk PRIMARY KEY [contact_id] ];
2 [
9 và+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
0] có thể được sử dụng để sao chép: Phần & NBSP; 5.1.8, các biến hệ thống máy chủ của Hồi giáo.INSERT INTO animals [id,name] VALUES[0,'groundhog'];