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

Điều gì sẽ xảy ra nếu tôi quên đặt Tự động tăng dần? Tôi có thể đặt nó sau trong MySQL không?

Có, bạn có thể đặt Tự động tăng sau với bảng ALTER. Đầu tiên chúng ta hãy tạo một bảng. Ở đây, như bạn có thể thấy, chúng tôi chưa đặt Tự động tăng -

mysql> create table forgetToSetAutoIncrementDemo
   -> (
   -> StudentId int,
   -> StudentName varchar(30)
   -> );
Query OK, 0 rows affected (1.17 sec)

Bây giờ hãy kiểm tra mô tả bảng, không có cột auto_increment -

mysql> desc forgetToSetAutoIncrementDemo;

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

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | YES  |     | NULL    |       |
| StudentName | varchar(30) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Sau đây là truy vấn để đặt tăng tự động trên cột StudentId -

mysql> alter table forgetToSetAutoIncrementDemo modify column StudentId int NOT NULL
AUTO_INCREMENT PRIMARY KEY;
Query OK, 0 rows affected (2.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

Bây giờ hãy kiểm tra lại mô tả bảng, cột auto_increment đã được thêm thành công -

mysql> desc forgetToSetAutoIncrementDemo;

Đ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(30) | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

Sau đây là truy vấn để chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert -

mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Larry');
Query OK, 1 row affected (0.16 sec)

mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Chris');
Query OK, 1 row affected (0.13 sec)

mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Robert');
Query OK, 1 row affected (0.17 sec)

Sau đây là truy vấn để 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 select -

mysql> select * from forgetToSetAutoIncrementDemo;

Điều này sẽ tạo ra kết quả sau hiển thị StudentID dưới dạng auto_increment -

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Larry       |
| 2         | Chris       |
| 3         | Robert      |
+-----------+-------------+
3 rows in set (0.00 sec)