11
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi chỉ muốn ID bảng MySQL [khóa chính] bắt đầu từ 0 ..
Như tôi đã thấy, tôi đã sử dụng thay đổi bảng tự động_increment có thể thay đổi = 0 nhưng nó bắt đầu từ 1.. điều đó tôi cần phải làm gì?
EDIT1
Tôi cũng đã làm trống bàn của mình với tùy chọn cắt ngắn
Shehzad
3274 Huy hiệu bạc24 Huy hiệu đồng4 silver badges24 bronze badges
Hỏi ngày 26 tháng 4 năm 2013 lúc 8:56Apr 26, 2013 at 8:56
7
SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'
NO_AUTO_VALUE_ON_ZERO ảnh hưởng đến việc xử lý các cột Auto_increment. Thông thường, bạn tạo số chuỗi tiếp theo cho cột bằng cách chèn null hoặc 0 vào nó. NO_AUTO_VALUE_ON_ZERO ngăn chặn hành vi này cho 0 để chỉ null tạo ra số chuỗi tiếp theo.
Chế độ này có thể hữu ích nếu 0 đã được lưu trữ trong cột Auto_increment của bảng. [Lưu trữ 0 không phải là một thực hành được khuyến nghị, nhân tiện.]
Tài liệu tham khảo
Tham khảo 2
Đã trả lời ngày 26 tháng 4 năm 2013 lúc 8:59Apr 26, 2013 at 8:59
Hanky pankyhanky pankyHanky Panky
46.3k8 Huy hiệu vàng70 Huy hiệu bạc95 Huy hiệu Đồng8 gold badges70 silver badges95 bronze badges
2
Bạn không thể buộc điều này là bằng không. Điều này bị giới hạn bởi biến máy chủ auto_increment_offset. Giá trị mặc định là 1, phạm vi là [1 .. 65535].auto_increment_offset server variable. The default value is 1, the range is [1 .. 65535].
Thông tin thêm: auto_increment_offset, cách đặt bước auto_increment.
Đã trả lời ngày 26 tháng 4 năm 2013 lúc 9:09Apr 26, 2013 at 9:09
DevartDevartDevart
Huy hiệu vàng 117K2222 gold badges161 silver badges181 bronze badges
1
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
, vì vậy MySQL tự động được chỉ định số thứ tự. 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ế độ
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;
1 SQL được bật. Ví dụ:INSERT INTO animals [id,name] VALUES[0,'groundhog'];
Nếu cột được khai báo
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;
2, cũng có thể gán 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;
3 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 ____99 hiện có cũng đặt lại chuỗi AUTO_INCREMENT
.
Bạn có thể truy xuất giá trị ____99 được tạo tự động gần đây nhất với hàm
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 SQL hoặc hàm API 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 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
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
1 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 +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
2, số trình tự cho phép tối đa là 127. Đối với +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
3, 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,
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 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;
9 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
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
8 hoặc +----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
9, như thế này:mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Ghi chú Myisam
Đối với các bảng
0, 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à
3] + 1 trong đó tiền tố = ________ 34. Đ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[0,'groundhog'];
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 | +--------+----+---------+
Trong trường hợp này [khi cột
AUTO_INCREMENT
là một phần của chỉ mục nhiều cột], các giá trịAUTO_INCREMENT
được sử dụng lại nếu bạn xóa hàng với giá trịAUTO_INCREMENT
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
0, trong đó các giá trịINSERT INTO animals [id,name] VALUES[0,'groundhog'];
AUTO_INCREMENT
thường không được sử dụng lại.Nếu cột
AUTO_INCREMENT
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ộtAUTO_INCREMENT
, nếu có. Ví dụ: nếu bảng
2 chứa các chỉ mụcINSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
3 vàINSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
4, MySQL sẽ bỏ quaINSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
5 để 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ịINSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
6.INSERT INTO animals [id,name] VALUES[NULL,'squirrel'];
Đọc thêm
Thông tin thêm về AUTO_INCREMENT
có sẵn ở đây:
Cách gán thuộc tính
AUTO_INCREMENT
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
AUTO_INCREMENT
hoạt động tùy thuộc vào chế độ
1 SQL: Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.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ách sử dụng hàm
8 để tìm hàng chứa giá trị ____99 gần đây nhất: Phần & NBSP; 12.16, Chức năng thông tin của Hồi giáo.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;
Đặt giá trị
AUTO_INCREMENT
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,
AUTO_INCREMENT
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
AUTO_INCREMENT
[
6 và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 | +-----+-----------+
7] 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[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 | +-----+-----------+