MISE À JOUR:
Suite à la question mise à jour, vous pouvez utiliser les éléments suivants dans votre script PHP:
SELECT COUNT(*) num_keys
FROM information_schema.KEY_COLUMN_USAGE
WHERE table_name ='tb' AND constraint_name = 'PRIMARY';
Cette requête renverra num_keys
> 1 si la table tb
a une clé primaire composite.
Je ne sais pas si je comprends ce que vous essayez d'atteindre, mais vous voudrez peut-être envisager d'utiliser SHOW INDEX
comme suit:
CREATE TABLE tb (a int, b int, c int);
Query OK, 0 rows affected (0.21 sec)
ALTER TABLE tb ADD CONSTRAINT pk_tb PRIMARY KEY (a, b);
Query OK, 0 rows affected (0.06 sec)
SHOW INDEX FROM tb WHERE key_name='PRIMARY';
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tb | 0 | PRIMARY | 1 | a | A | NULL | NULL | NULL | | BTREE | |
| tb | 0 | PRIMARY | 2 | b | A | 0 | NULL | NULL | | BTREE | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
2 rows in set (0.02 sec)
S'il n'y avait pas une clé composite, vous le feriez seulement obtenir une ligne dans la requête SHOW INDEX
:
CREATE TABLE tb2 (a int, b int, c int);
Query OK, 0 rows affected (0.05 sec)
ALTER TABLE tb2 ADD CONSTRAINT pk_tb PRIMARY KEY (a);
Query OK, 0 rows affected (0.05 sec)
SHOW INDEX FROM tb2 WHERE key_name='PRIMARY';
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tb2 | 0 | PRIMARY | 1 | a | A | 0 | NULL | NULL | | BTREE | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
1 row in set (0.02 sec)
Que voulez-vous dire par identifier? Quels outils utilisez-vous? phpMyAdmin? SQLyog? Ou voulez-vous le faire par programme? Si oui, quelle langue? –
@OM L'Eternité: RE l'image, n'est-ce pas suffisant pour identifier que votre clé est composite? (composé de 'moduleid' et' menuid') –
Mon ami Daniel pls essayer de comprendre mon script php ne pas avoir les yeux pour identifier les touches composites ... :) pls me dire tout moyen de savoir que "cette table a touches composites primry .... "pls lire ma question correctement ... –