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

Điều gì xảy ra nếu tôi cố gắng loại bỏ ràng buộc KHÓA CHÍNH khỏi cột AUTO_INCREMENT?


Như chúng ta biết cột AUTO_INCREMENT cũng phải có ràng buộc CHÍNH CHÍNH trên đó, do đó khi chúng tôi cố gắng loại bỏ ràng buộc KHÓA CHÍNH khỏi cột AUTO_INCREMENT, MySQL trả về một thông báo lỗi liên quan đến bảng không chính xác Định nghĩa. Ví dụ dưới đây sẽ chứng minh điều đó -

Ví dụ

Giả sử chúng ta có bảng 'Tài khoản' có mô tả sau -

mysql> Describe accounts;

+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| Sr     | int(10)     | NO   | PRI | NULL    | auto_increment |
| Name   | varchar(20) | YES  |     | NULL    |                |
| amount | int(15)     | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

3 rows in set (0.10 sec) 

Nó đang có một ‘Sr’ được đệ trình với định nghĩa AUTO_INCREMENT và PRIMARY KEY. Bây giờ, nếu chúng ta cố gắng thả KHÓA CHÍNH này thì MySQL sẽ gặp lỗi như sau -

mysql> Alter table Accounts DROP PRIMARY KEY;
ERROR 1075 (42000): Incorrect table definition; there can be only one
   auto column and it must be defined as a key