Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welche eindeutige Taste wird mit meinem Einsatz getroffen?

Wie Bobby vorgeschlagen hat, gibt SHOW indexes eine Ergebnismenge mit relevantem Schlüsselindex zurück, überprüfen Sie diese Seite für weitere Beispiele:

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

Dies erfordert jedoch wahrscheinlich genauso viel Code, wenn nicht mehr als die folgende Problemumgehung.

Überprüfen Sie, welcher Wert, den Sie eingefügt haben, mit einer vorhandenen Zeile in der Tabelle kollidiert:

SELECT code FROM myTable WHERE code = 'the_value_you_tried_to_insert';

oder

SELECT name FROM myTable WHERE name = 'the_value_you_tried_to_insert';

Wenn auch keine sehr elegante Lösung.