Truy vấn INFORMATION_SCHEMA.KEY_COLUMN_USAGE để đếm số cột thuộc khóa chính của một bảng.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1324 (
StudentId INT, StudentName VARCHAR(20), StudentAge INT, StudentCountryName VARCHAR(20)
);
Thêm khóa chính tổ hợp 3 cột:
mysql> ALTER TABLE DemoTable1324
ADD CONSTRAINT constr_IdAgeCountry PRIMARY KEY (StudentId, StudentAge, StudentCountryName);
Truy vấn kiểm tra số cột trong PK:
mysql> SELECT COUNT(*) AS Total
FROM information_schema.KEY_COLUMN_USAGE
WHERE table_name = 'DemoTable1324' AND table_schema = DATABASE();
Kết quả:
+-------+ | Total | +-------+ | 3 | +-------+
Giải thích: Kết quả 3 > 1 → khóa chính tổ hợp (composite PK) gồm 3 cột.
Cách khác (xem chi tiết):
SELECT COLUMN_NAME, ORDINAL_POSITION FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'DemoTable1324' AND CONSTRAINT_NAME = 'PRIMARY' ORDER BY ORDINAL_POSITION;
Trả về tên và thứ tự các cột trong PK.