Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle clé unique est frappée avec mon insert ?

Comme Bobby l'a suggéré, les index SHOW renvoient un ensemble de résultats avec un index clé pertinent, consultez cette page pour d'autres exemples :

SHOW INDEXES FROM products_to_categories
WHERE Key_name = "PRIMARY"
AND Seq_in_index = '2';

+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table                  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| products_to_categories |          0 | PRIMARY  |            2 | category_id | A         |           0 |     NULL | NULL   |      | BTREE      |         |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

Cependant, cela nécessitera probablement autant de code, sinon plus, que la solution de contournement suivante.

Vérifiez quelle valeur que vous avez insérée est en conflit avec une ligne existante dans le tableau :

SELECT code FROM myTable WHERE code = 'the_value_you_tried_to_insert';

ou

SELECT name FROM myTable WHERE name = 'the_value_you_tried_to_insert';

Bien que ce ne soit pas une solution très élégante.