Hướng dẫn drop auto_increment mysql - thả auto_increment mysql

Đây sẽ là một vấn đề rất dễ dàng nhưng tôi không thể tìm thấy một giải pháp hoạt động.

Tôi di chuyển ngày từ Oracle sang MySQL và trong quá trình, tất cả các khóa chính được đặt thành Auto_increment.

Tuy nhiên, có rất nhiều mối quan hệ được xác định (PK cha mẹ giống nhau).

Vì vậy, cách chính xác để thực hiện giao dịch là chèn vào các bảng cha mẹ, nhận result.insertId từ tương tác này và sau đó chèn cùng một giá trị trong bảng con. Tôi biết rằng tôi chỉ có thể bỏ qua Auto_increment gửi ID trong lệnh chèn nhưng tôi không muốn để điều này đi.

Khi các giải pháp tôi đọc về nói rằng tôi cần thay đổi cột thành chính xác cùng một đặc điểm kỹ thuật nhưng Auto_increment, tôi chạy SQL sau:

alter table added_object modify column id_interaction_object int(11) not null;

.. và tôi nhận được tin nhắn sau:

Lỗi 1833 (Hy000): Không thể thay đổi cột 'ID_interAction_Object': Được sử dụng trong một ràng buộc khóa nước ngoài 'fk__metric__added_object' của bảng 'số liệu'

Bất kỳ lời khuyên?

Cảm ơn

3.6.9 & nbsp; sử dụng auto_increment

Thuộc tính

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;
0 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 ____10 là một phần của chỉ mục nhiều cột), các giá trị ____10 được sử dụng lại nếu bạn xóa hàng với giá trị ____1010 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');
1, trong đó các giá trị ____10 thường không được sử dụng lại.

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;
3, 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;
4 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

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;
0, 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 ____10 hiện tại cũng đặt lại chuỗ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;
0.

Bạn có thể truy xuất 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;
0 đượ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;
9 SQL hoặc hàm API
+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+
0 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

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;
0 đủ 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 |
+----+---------+
2 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 |
+----+---------+
3, 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 |
+----+---------+
4, 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;
9 và
+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+
0 thực sự trả lại khóa
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;
0 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 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;
0 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 |
+----+---------+
9 hoặc
INSERT INTO animals (id,name) VALUES(0,'groundhog');
0, 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');
    1, bạn có thể chỉ định
    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;
    0 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
    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;
    0 được tính là
    INSERT INTO animals (id,name) VALUES(0,'groundhog');
    4) + 1 trong đó tiền tố = ________ 35. Đ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 ____10 là một phần của chỉ mục nhiều cột), các giá trị ____10 được sử dụng lại nếu bạn xóa hàng với giá trị ____1010 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');
    1, trong đó các giá trị ____10 thường không được sử dụng lại.

  • Nếu cột

    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;
    0 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 ____1010, nếu có. Ví dụ: nếu bảng
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    3 chứa các chỉ mục
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    4 và
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    5, MySQL sẽ bỏ qua
    INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
    6 để 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');
    7.

Đọc thêm

Thông tin thêm 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;
0 có sẵn tại đây:

  • Cách gán thuộc tính

    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;
    0 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 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;
    0 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;
    2 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;
    9 để tìm hàng chứa giá trị ____1010 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 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;
    0 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 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;
    0 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 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;
    0 (
    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 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     |
    +-----+-----------+
    8) 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ủ.