Hướng dẫn mysql id start from 0 or 1 - id mysql bắt đầu từ 0 hoặc 1

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

Hướng dẫn mysql id start from 0 or 1 - id mysql bắt đầu từ 0 hoặc 1

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

Hướng dẫn mysql id start from 0 or 1 - id mysql bắt đầu từ 0 hoặc 1

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

Hướng dẫn mysql id start from 0 or 1 - id mysql bắt đầu từ 0 hoặc 1

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

    INSERT INTO animals (id,name) VALUES(0,'groundhog');
    0, bạn có thể chỉ định 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ột AUTO_INCREMENT được tính là
    INSERT INTO animals (id,name) VALUES(0,'groundhog');
    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.

    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

    INSERT INTO animals (id,name) VALUES(0,'groundhog');
    0, trong đó các giá trị 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ột AUTO_INCREMENT, nếu có. Ví dụ: nếu bảng

    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    2 chứa các chỉ mục
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    3 và
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    4, MySQL sẽ bỏ qua
    INSERT 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.

Đọ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ế độ

    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: Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.

  • Cách sử dụng 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 để 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.

  • Đặ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 (

    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     |
    +-----+-----------+
    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.

Tăng tự động có bắt đầu ở 0 hoặc 1 không?

Các cột Auto_increment bắt đầu từ 1 theo mặc định. Giá trị được tạo tự động không bao giờ có thể thấp hơn 0. Mỗi bảng chỉ có thể có một cột Auto_increment. Nó phải được định nghĩa là một khóa (không nhất thiết là khóa chính hoặc khóa duy nhất).. The automatically generated value can never be lower than 0. Each table can have only one AUTO_INCREMENT column. It must defined as a key (not necessarily the PRIMARY KEY or UNIQUE key).

Làm thế nào tôi có thể làm cho ID của tôi bắt đầu từ 1 một lần nữa?

Pha nén được yêu cầu vì MySQL không cho phép "điền vào các khoảng trống" thông qua cột tự động ...
Nhỏ gọn các ID hiện có, như vậy: set @i: = 0; Cập nhật t id = @i: = ( @i+1) ....
Gán tự động id see cho giá trị id tối đa1 sau khi nén: thay đổi bảng t auto_increment = (chọn tối đa (id) từ t).

ID trong MySQL là gì?

ID xác thực mỗi hàng trong MySQL.Bảng người dùng được xác định bởi người dùng và bộ chủ lưu trữ.Tuple này là ID ủy quyền.Khách hàng có thể xác thực với ID ủy quyền và mật khẩu.ID sau đó được gọi là tên người dùng hoặc người dùng. Each row in the mysql. user table is identified by a user and host tuple. This tuple is the authorization ID. A client can authenticate with an authorization ID and a password. The ID is then referred to as a user or user name.

MySQL có ID không?

@T.J.Crowder: MySQL không có ID hàng bên ngoài bất cứ thứ gì trong bảng như ví dụ.Postres làm.Định danh duy nhất duy nhất trong bảng MySQL là bất kỳ chỉ mục/khóa chính duy nhất nào trong bảng.MySQL doesn't have row id's outside whatever is in the table like eg. Postres does. The only unique identifier in a MySQL table is any unique index/primary key in the table.