Vấn đề:
Bạn muốn tìm tên của các ràng buộc trong bảng trong MySQL.
Ví dụ:
Chúng tôi muốn hiển thị tên của các ràng buộc trong bảng student
.
Giải pháp:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Đây là kết quả:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
sinh viên | TỪ KHÓA CHÍNH | CHÍNH |
sinh viên | DUY NHẤT | personal_number |
sinh viên | KEY NGOẠI HỐI | student_ibfk_1 |
sinh viên | KIỂM TRA | student_chk_1 |
Thảo luận:
Sử dụng chế độ xem table_constraints
trong information_schema
lược đồ. Chế độ xem này chứa rất nhiều cột, nhưng quan trọng nhất là table_name
, constraint_type
và constraint_name
. Cột table_name cung cấp cho bạn tên của bảng trong đó ràng buộc được xác định và cột constraint_name
chứa tên của ràng buộc. Cột constraint_type
cho biết loại ràng buộc:PRIMARY KEY
cho loại khóa chính, FOREIGN KEY
đối với loại khóa ngoại, UNIQUE
cho các giá trị duy nhất và CHECK
để kiểm tra ràng buộc. Trong ví dụ của chúng tôi, bạn có thể thấy ràng buộc có tên PRIMARY
cho khóa chính trong student
bàn. constraint_type
cột cung cấp cho bạn thông tin về loại của mỗi ràng buộc; đối với khóa chính, nó là PRIMARY KEY
.