Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách thay đổi số bắt đầu AUTO_INCREMENT trong MySQL?

Giá trị AUTO_INCREMENT của MySQL bắt đầu từ 1 nhưng chúng ta có thể thay đổi nó bằng hai cách sau:

Với ALTER TABLE

Chúng ta dùng ALTER TABLE để thay đổi giá trị bắt đầu của AUTO_INCREMENT như sau:

ALTER TABLE table_name AUTO_INCREMENT = value;

Ví dụ

Giả sử ta tạo bảng có cột 'id' là AUTO_INCREMENT. Nếu chèn giá trị, dãy số bắt đầu từ 1 như thấy trong truy vấn sau:

mysql> CREATE TABLE EMP(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10));
Query OK, 0 rows affected (0.07 sec)
mysql> INSERT INTO EMP(Name) VALUES('Aryan');
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO EMP(Name) VALUES('Yash');
Query OK, 1 row affected (0.04 sec)
mysql> SELECT * FROM EMP;
+----+-------+
| id | NAME  |
+----+-------+
| 1  | Aryan |
| 2  | Yash  |
+----+-------+
2 rows in set (0.00 sec)

Bây giờ, nếu muốn thay đổi số dãy sau đó, ta dùng ALTER TABLE thay đổi AUTO_INCREMENT:

mysql> ALTER TABLE emp AUTO_INCREMENT = 10;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO EMP(Name) VALUES('Daksh');
Query OK, 1 row affected (0.03 sec)
mysql> INSERT INTO EMP(Name) VALUES('Shayra');
Query OK, 1 row affected (0.06 sec)
mysql> SELECT * FROM EMP;
+----+--------+
| id | NAME   |
+----+--------+
| 1  | Aryan  |
| 2  | Yash   |
| 10 | Daksh  |
| 11 | Shayra |
+----+--------+
4 rows in set (0.00 sec)

Truy vấn trên thay đổi AUTO_INCREMENT thành 10, do đó chèn mới sau đó sẽ có số dãy từ 10 trở đi.

Với CREATE TABLE

Chúng ta cũng có thể thay đổi giá trị AUTO_INCREMENT khi tạo bảng. Làm bằng cách chỉ định giá trị AUTO_INCREMENT trong CREATE TABLE như sau:

CREATE TABLE (Column1 INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Column2 data_type) AUTO_INCREMENT = value;

Ví dụ

mysql> CREATE TABLE EMP1(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10)) AUTO_INCREMENT = 100;
Query OK, 0 rows affected (0.11 sec)

Truy vấn trên chỉ định AUTO_INCREMENT = 100 khi tạo bảng. Bây giờ nếu chèn giá trị, dãy số sẽ bắt đầu từ 100 thay vì mặc định 1 như sau:

mysql> INSERT INTO emp1(name) VALUES('Sohan');
Query OK, 1 row affected (0.04 sec)
mysql> INSERT INTO emp1(name) VALUES('Harshit');
Query OK, 1 row affected (0.05 sec)
mysql> SELECT * FROM emp1;
+-----+---------+
| id  | NAME    |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
+-----+---------+
2 rows in set (0.00 sec)