Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy danh sách các cột trong từng ràng buộc (constraint) MySQL


Để xem chi tiết các cột tham gia vào từng ràng buộc (PRIMARY KEY, FOREIGN KEY, UNIQUE...) trong một database, truy vấn bảng information_schema.key_column_usage.

Cú pháp

SELECT * 
FROM information_schema.key_column_usage 
WHERE constraint_schema = 'your_database_name';

Ví dụ với database "business"

mysql> SELECT * 
FROM information_schema.key_column_usage 
WHERE constraint_schema = 'business';

Kết quả trả về các cột quan trọng:

CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ORDINAL_POSITION REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
PRIMARY primarytable FKPK 1 NULL NULL
ConstFK tabledemo2 id 1 NULL NULL
constFKPK foreigntable Fk_pk 1 primarytable1 fk_pk
FKConst foreigntabledemo FK 1 primarytabledemo fk

Giải thích các cột chính

  • CONSTRAINT_NAME: Tên ràng buộc (PRIMARY, tên FK, tên UNIQUE...)
  • TABLE_NAME: Bảng chứa cột này
  • COLUMN_NAME: Tên cột tham gia ràng buộc
  • ORDINAL_POSITION: Thứ tự cột trong khóa composite
  • REFERENCED_TABLE_NAME: Bảng được tham chiếu (chỉ có với FOREIGN KEY)
  • REFERENCED_COLUMN_NAME: Cột được tham chiếu (chỉ có với FOREIGN KEY)

Lọc theo loại ràng buộc

Kết hợp với table_constraints để lọc:

SELECT kcu.* 
FROM information_schema.key_column_usage kcu
JOIN information_schema.table_constraints tc 
  ON kcu.constraint_name = tc.constraint_name
  AND kcu.constraint_schema = tc.constraint_schema
WHERE kcu.constraint_schema = 'business'
  AND tc.constraint_type = 'FOREIGN KEY';