Cách đặt lại auto_increment trong mysql bằng php

Tự động tăng là một tính năng hữu ích được cung cấp bởi MySQL. Nó luôn tạo ra một danh tính duy nhất cho mỗi hàng mới được chèn vào bảng. Nói chung, chúng tôi sử dụng thuộc tính tăng tự động cho trường khóa chính trong bảng. Mỗi lần chúng ta chèn các bản ghi mới vào một bảng, MySQL sẽ tự động tăng giá trị vào cột tăng tự động

Ví dụ: chúng tôi có một bảng đã chứa mười hàng. Tiếp theo, nếu chúng ta thêm một hàng mới mà không đưa giá trị vào cột tăng tự động, MySQL sẽ tự động thêm một hàng mới với id=11

Đôi khi, chúng ta cần xóa các hàng này và đặt lại cột tăng tự động để khi chúng ta thực hiện lần chèn tiếp theo vào bảng, danh tính của bản ghi đầu tiên sẽ có giá trị khóa chính là 1

MySQL cho phép nhiều cách khác nhau để đặt lại giá trị cột tăng tự động. Những cách này là

  1. Sử dụng câu lệnh ALTER TABLE
  2. Sử dụng câu lệnh TRUNCATE TABLE
  3. Sử dụng một cặp câu lệnh DROP TABLE và CREATE TABLE

Đầu tiên, chúng ta sẽ tạo một bảng có tên là "Động vật" và gán cột id với thuộc tính tự động tăng. Xem tuyên bố dưới đây

Tiếp theo, chúng ta sẽ chèn một số dữ liệu mẫu vào bảng "Động vật" như sau

Bây giờ, chúng tôi sẽ thực hiện câu lệnh dưới đây để xác minh thao tác chèn

Chúng ta sẽ nhận được đầu ra dưới đây. Trong câu lệnh chèn, chúng tôi chưa chỉ định bất kỳ giá trị nào cho cột tăng tự động. Nhưng chúng ta có thể quan sát thấy ở đầu ra rằng MySQL tự động tạo một số duy nhất theo thứ tự cho trường này

Cách đặt lại auto_increment trong mysql bằng php

Hãy để chúng tôi lấy bảng này để minh họa các phương pháp đặt lại giá trị cột tăng tự động một cách chi tiết

Sử dụng câu lệnh ALTER TABLE

Câu lệnh ALTER TABLE được sử dụng để thay đổi tên của bảng hoặc bất kỳ trường nào của bảng. Nó cũng được sử dụng để thêm, xóa hoặc đặt lại một cột hiện có trong bảng. MySQL cũng cho phép câu lệnh này đặt lại giá trị cột tăng tự động bất cứ khi nào chúng tôi muốn

cú pháp

Sau đây là cú pháp của câu lệnh ALTER TABLE để đặt lại giá trị cột tự động tăng

Trong cú pháp này, trước tiên chúng tôi đã chỉ định tên của bảng sau mệnh đề ALTER TABLE. Tiếp theo, chúng tôi chỉ định giá trị mà chúng tôi muốn đặt lại trong biểu thức là AUTO_INCREMENT = value

Cần lưu ý rằng MySQL không cho phép đặt lại giá trị nhỏ hơn hoặc bằng giá trị đã được sử dụng. Ví dụ: nếu chúng tôi đang sử dụng InnoDB, giá trị không được nhỏ hơn hoặc bằng giá trị tối đa hiện tại của cột tăng tự động

Đối với MyISAM, nếu giá trị được chỉ định nhỏ hơn hoặc bằng giá trị tối đa của cột auto_increment, thì giá trị đó sẽ được đặt lại về giá trị tối đa hiện tại cộng với một

Đối với InnoDB, nếu giá trị được chỉ định nhỏ hơn giá trị tối đa hiện tại của cột auto_increment, MySQL sẽ không phát sinh bất kỳ lỗi nào và trình tự hiện tại cũng không thay đổi

Hãy xóa hàng thấp nhất trong bảng với id = 6 như bên dưới

Nếu chúng ta thêm một bản ghi mới, MySQL sẽ gán bản ghi này với id = 7. Nhưng nếu chúng ta muốn đặt lại cột này về giá trị cuối cùng, chúng ta có thể sử dụng câu lệnh ALTER TABLE như sau

Nếu chúng ta chèn các bản ghi mới vào bảng này, MySQL sẽ bắt đầu tạo id hàng với 6. Thực hiện truy vấn dưới đây

Cuối cùng, truy vấn dữ liệu trong bảng để xem hiệu quả. Đầu ra bên dưới giải thích rõ ràng hơn khi chúng ta có sáu hàng với giá trị gia tăng tự động cuối cùng là 6 thay vì 7

Cách đặt lại auto_increment trong mysql bằng php

Sử dụng câu lệnh TRUNCATE TABLE

Câu lệnh TRUNCATE TABLE trong MySQL xóa hoàn toàn dữ liệu của bảng mà không xóa cấu trúc của bảng và luôn đặt lại giá trị cột tăng tự động về 0

cú pháp

Cú pháp sau minh họa câu lệnh TRUNCATE TABLE để đặt lại giá trị cột tự động tăng

Cần lưu ý rằng chúng ta không thể khôi phục dữ liệu đã xóa khỏi bảng sau khi thực hiện câu lệnh TRUNCATE TABLE

Sử dụng câu lệnh DROP TABLE và CREATE TABLE

Chúng ta cũng có thể đặt lại giá trị cột tăng tự động bằng cách sử dụng một cặp câu lệnh DROP TABLE và CREATE TABLE. Phương pháp này xóa vĩnh viễn các bản ghi hoàn chỉnh khỏi bảng

Tương tự như truy vấn TRUNCATE TABLE, cặp câu lệnh DROP TABLE và CREATE TABLE trước tiên xóa bảng rồi tạo lại bảng. Do đó, MySQL đặt lại giá trị cột tăng tự động thành 0

Để đặt lại cột tăng tự động, hãy sử dụng lệnh TRUNCATE TABLE. Sau đó, khi chèn, nó sẽ đặt lại cột

Trước tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1888
   (
   Id int NOT NULL AUTO_INCREMENT,
   PRIMARY KEY(Id)
   );
Query OK, 0 rows affected (0.00 sec)

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

mysql> insert into DemoTable1888 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1888 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1888 values();
Query OK, 1 row affected (0.00 sec)

Hiển thị một số bản ghi trong bảng bằng lệnh chèn -

mysql> select * from DemoTable1888;

Điều này sẽ tạo ra đầu ra sau -

+----+
| Id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.00 sec)

Đây là truy vấn để đặt lại cột tăng tự động -

mysql> truncate table DemoTable1888;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from DemoTable1888;
Empty set (0.00 sec)

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

mysql> insert into DemoTable1888 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1888 values();
Query OK, 1 row affected (0.00 sec)

Hiển thị một số bản ghi trong bảng bằng lệnh chèn -

mysql> select * from DemoTable1888;

Điều này sẽ tạo ra đầu ra sau -

+----+
| Id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)

Cách đặt lại auto_increment trong mysql bằng php


Cách đặt lại auto_increment trong mysql bằng php

Làm cách nào để thay đổi giá trị gia tăng tự động trong MySQL?

Trong MySQL, bộ đếm tăng tự động bắt đầu từ 0 theo mặc định, nhưng nếu bạn muốn tăng tự động bắt đầu từ một số khác, hãy sử dụng cú pháp bên dưới. ALTER TABLE yourTable auto_increment=yourIntegerNumber; Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng.

Làm cách nào để xóa phần tăng tự động trong MySQL?

Để tắt hoặc xóa phần tăng tự động khỏi một cột trong Bảng MySQL, bạn chỉ cần Sửa đổi cột có cùng loại dữ liệu nhưng không có mệnh đề auto_increment.

Làm cách nào để đặt giá trị gia tăng tự động trong php MySQL?

Trong MySQL, cú pháp để thay đổi giá trị bắt đầu cho cột AUTO_INCREMENT bằng cách sử dụng câu lệnh ALTER TABLE là. ALTER TABLE table_name AUTO_INCREMENT = start_value; table_name. Tên của bảng có giá trị AUTO_INCREMENT mà bạn muốn thay đổi.

Làm cách nào để đặt lại id về 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.