Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để thay đổi khóa chính trong MySQL thành auto_increment?

Để thay đổi khóa chính thành auto_increment, bạn có thể sử dụng lệnh MODIFY. Đầu tiên chúng ta hãy tạo một bảng.

mysql> create table changePrimaryKeyInAutoIncrement
   -> (
   -> StudentId int not null primary key,
   -> StudentName varchar(100),
   -> StudentAge int,
   -> StudentAddress varchar(100)
   -> );
Query OK, 0 rows affected (0.63 sec)

Bây giờ chúng ta hãy kiểm tra mô tả của bảng bằng lệnh desc:

mysql> desc changePrimaryKeyInAutoIncrement;

Điều này sẽ tạo ra kết quả sau

+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| StudentId      | int(11)      | NO   | PRI | NULL    |       |
| StudentName    | varchar(100) | YES  |     | NULL    |       |
| StudentAge     | int(11)      | YES  |     | NULL    |       |
| StudentAddress | varchar(100) | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

Nhìn vào kết quả đầu ra mẫu ở trên, cột StudentId là một khóa chính. Bây giờ, hãy để chúng tôi thay đổi khóa chính thành auto_increment:

mysql> alter table changePrimaryKeyInAutoIncrement MODIFY StudentId INT AUTO_INCREMENT;
Query OK, 0 rows affected (1.48 sec)
Records: 0 Duplicates: 0 Warnings: 0

Hãy để chúng tôi kiểm tra mô tả bảng một lần nữa:

mysql> desc changePrimaryKeyInAutoIncrement;

Điều này sẽ tạo ra kết quả sau

+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| StudentId      | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName    | varchar(100) | YES  |     | NULL    |                |
| StudentAge     | int(11)      | YES  |     | NULL    |                |
| StudentAddress | varchar(100) | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

Nhìn vào kết quả đầu ra mẫu ở trên, cột StudentId đã được thay đổi thành auto_increment.