Đặt lại id sau khi xóa MySQL

Tôi có một bảng MYSQL với trường có TĂNG TỐC TỰ ĐỘNG. Có 2 bản ghi được chèn khi tôi đang cố xóa bản ghi 1 và 2 và chèn id dữ liệu mới của dữ liệu đó phải bắt đầu từ 1 nhưng nó bắt đầu từ 3. Có giải pháp nào không?

Gần đây tôi đã gặp sự cố trường id của loại bộ sưu tập không được đặt lại sau khi tất cả mục nhập đã bị xóa. ví dụ tôi có 2 bài viết có 2 id tương ứng 1 ,2 nhưng sau khi tôi xóa nó và tạo một bài viết mới id vẫn giữ nguyên [ nó bắt đầu từ 3 thay vì đặt lại về 1 ]. Làm thế nào tôi có thể giải quyết vấn đề này, đó có phải là vấn đề về cơ sở dữ liệu không?

Hướng dẫn MySQL này giải thích cách đặt lại trình tự bằng thuộc tính AUTO_INCREMENT trong MySQL với cú pháp và ví dụ

Sự miêu tả

Bạn có thể đặt lại giá trị tiếp theo được chỉ định bởi AUTO_INCREMENT bất kỳ lúc nào bằng cách sử dụng câu lệnh ALTER TABLE trong MySQL

cú pháp

Trong MySQL, cú pháp để đặt lại cột AUTO_INCREMENT bằng câu lệnh ALTER TABLE là

ALTER TABLE table_name AUTO_INCREMENT = value;
table_nameTên của bảng có cột AUTO_INCREMENT mà bạn muốn đặt lại. valueGiá trị tiếp theo sẽ được sử dụng trong cột AUTO_INCREMENT

Ví dụ

Hãy xem một ví dụ về cách đặt lại giá trị tiếp theo được gán cho cột AUTO_INCREMENT trong bảng trong MySQL

Ví dụ: nếu chúng tôi có một bảng nhà cung cấp được xác định như sau

CREATE TABLE suppliers
[ supplier_id INT[11] NOT NULL AUTO_INCREMENT,
  supplier_name VARCHAR[50] NOT NULL,
  account_rep VARCHAR[30] NOT NULL DEFAULT 'TBD',
  CONSTRAINT suppliers_pk PRIMARY KEY [supplier_id]
];

Chúng ta có thể đặt lại giá trị tiếp theo trong chuỗi cho trường supply_id [là trường AUTO_INCREMENT trong bảng nhà cung cấp] bằng câu lệnh ALTER TABLE sau

ALTER TABLE suppliers AUTO_INCREMENT = 1;

Ví dụ này sẽ thay đổi giá trị tiếp theo trong trường AUTO_INCREMENT [nghĩa là. giá trị tiếp theo trong chuỗi] thành 1 cho cột nhà cung cấp_id trong bảng nhà cung cấp. Bây giờ khi một bản ghi mới được chèn vào bảng nhà cung cấp, cột supply_id sẽ được gán giá trị là 1 trong bản ghi mới được tạo

TIỀN BOA. Vì chỉ có thể có một trường AUTO_INCREMENT trong một bảng nên bạn chỉ cần chỉ định tên bảng [chứ không phải tên trường] trong câu lệnh ALTER TABLE khi đặt lại giá trị tiếp theo trong chuỗi

Để đặt lại khóa chính về 1 sau khi xóa dữ liệu, hãy sử dụng cú pháp sau

alter table yourTableName AUTO_INCREMENT=1;
truncate table yourTableName;

Sau khi thực hiện hai bước trên, bạn sẽ nhận được khóa chính bắt đầu từ 1

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau

mysql> create table resettingPrimaryKeyDemo
   -> [
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY
   -> ];
Query OK, 0 rows affected [0.66 sec]

Chèn một số bản ghi vào bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into resettingPrimaryKeyDemo values[];
Query OK, 1 row affected [0.15 sec]
mysql> insert into resettingPrimaryKeyDemo values[];
Query OK, 1 row affected [0.10 sec]
mysql> insert into resettingPrimaryKeyDemo values[];
Query OK, 1 row affected [0.08 sec]
mysql> insert into resettingPrimaryKeyDemo values[];
Query OK, 1 row affected [0.12 sec]

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn. Truy vấn như sau -

mysql> select *from resettingPrimaryKeyDemo;

Sau đây là đầu ra

+--------+
| UserId |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
+--------+
4 rows in set [0.00 sec]

Đây là truy vấn để đặt lại khóa chính thành 1

________số 8

Kiểm tra các bản ghi từ bảng. Truy vấn như sau -

mysql> select *from resettingPrimaryKeyDemo;
Empty set [0.00 sec]

Chèn một số bản ghi từ bảng bằng lệnh chèn. Truy vấn như sau -

CREATE TABLE suppliers
[ supplier_id INT[11] NOT NULL AUTO_INCREMENT,
  supplier_name VARCHAR[50] NOT NULL,
  account_rep VARCHAR[30] NOT NULL DEFAULT 'TBD',
  CONSTRAINT suppliers_pk PRIMARY KEY [supplier_id]
];
0

Bây giờ hãy kiểm tra khóa chính của bảng bắt đầu từ 1. Truy vấn như sau -

mysql> select *from resettingPrimaryKeyDemo;

Sau đây là đầu ra

CREATE TABLE suppliers
[ supplier_id INT[11] NOT NULL AUTO_INCREMENT,
  supplier_name VARCHAR[50] NOT NULL,
  account_rep VARCHAR[30] NOT NULL DEFAULT 'TBD',
  CONSTRAINT suppliers_pk PRIMARY KEY [supplier_id]
];
2

Làm cách nào để đặt lại id trong MySQL sau khi XÓA?

ALTER TABLE `table` AUTO_INCREMENT = number; Thay thế 'số' bằng kết quả của lệnh trước cộng một và thay thế bảng bằng tên bảng. Nếu bạn đã xóa tất cả các hàng trong bảng, thì bạn có thể chạy lệnh thay đổi bảng và đặt lại về 0.

Làm cách nào để đặt lại id thành 0 trong MySQL?

Sử dụng câu lệnh TRUNCATE TABLE . Câu lệnh TRUNCATE TABLE xóa tất cả dữ liệu khỏi bảng và đặt lại giá trị tăng tự động về 0. Bằng cách sử dụng câu lệnh TRUNCATE TABLE, bạn xóa vĩnh viễn tất cả dữ liệu khỏi bảng và đặt lại giá trị tự động tăng về 0.

Làm cách nào để đặt lại danh tính khóa chính trong MySQL?

thay đổi bảng yourTableName AUTO_INCREMENT=1; . After doing the above two steps, you will get the primary key beginning from 1.

Làm cách nào để bắt đầu id từ 1 trong MySQL?

ALTER TABLE yourTableName AUTO_INCREMENT=0; Cú pháp trên sẽ bắt đầu từ 1.

Chủ Đề