sql >> Base de Datos >  >> RDS >> Mysql

¿Qué clave única se golpea con mi inserto?

Como ha sugerido Bobby, los índices SHOW devuelven un conjunto de resultados con un índice clave relevante, consulte esta página para más ejemplos:

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      |         |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

Sin embargo, esto probablemente requerirá tanto código, si no más, que la siguiente solución.

Verifique qué valor que insertó colisiona con una fila existente en la tabla:

SELECT code FROM myTable WHERE code = 'the_value_you_tried_to_insert';

o

SELECT name FROM myTable WHERE name = 'the_value_you_tried_to_insert';

Aunque no es una solución muy elegante.