Xóa PRIMARY KEY trong MySQL
Có, có thể xóa khóa chính (PRIMARY KEY) khỏi bảng MySQL bằng cách sử dụng mệnh đề DROP PRIMARY KEY trong câu lệnh ALTER TABLE.
Cú pháp
ALTER TABLE ten_bang DROP PRIMARY KEY;
Ví dụ minh họa
Tạo bảng có PRIMARY KEY:
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL PRIMARY KEY
);
Query OK, 0 rows affected (0.58 sec)
Kiểm tra cấu trúc bảng (hiển thị PRI trong cột Key):
mysql> DESC DemoTable;
+--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | PRI | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
Xóa PRIMARY KEY:
mysql> ALTER TABLE DemoTable DROP PRIMARY KEY; Query OK, 0 rows affected (1.51 sec) Records: 0 Duplicates: 0 Warnings: 0
Kiểm tra lại cấu trúc bảng (cột Key giờ trống):
mysql> DESC DemoTable;
+--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
Lưu ý quan trọng
- Sau khi xóa PRIMARY KEY, cột vẫn giữ ràng buộc
NOT NULL(nếu đã định nghĩa) - Không thể xóa PRIMARY KEY nếu nó được tham chiếu bởi FOREIGN KEY của bảng khác (phải xóa FK trước)
- Một bảng chỉ có tối đa 1 PRIMARY KEY
- Để thêm lại PRIMARY KEY:
ALTER TABLE ten_bang ADD PRIMARY KEY (ten_cot);
Xóa PRIMARY KEY có tên cụ thể (nếu đặt tên)
ALTER TABLE ten_bang DROP CONSTRAINT ten_khoa_chinh;
Lưu ý: MySQL tự động đặt tên PRIMARY KEY là PRIMARY, nên DROP PRIMARY KEY là đủ.