sql >> Database >  >> RDS >> Mysql

Welke unieke toets wordt geraakt met mijn insert?

Zoals Bobby heeft gesuggereerd, geeft SHOW indexes een resultatenset met relevante sleutelindex, check deze pagina voor meer voorbeelden:

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

Dit vereist echter waarschijnlijk evenveel code, zo niet meer dan de volgende tijdelijke oplossing.

Controleer welke waarde je hebt ingevoegd en botst met een bestaande rij in de tabel:

SELECT code FROM myTable WHERE code = 'the_value_you_tried_to_insert';

of

SELECT name FROM myTable WHERE name = 'the_value_you_tried_to_insert';

Hoewel niet een erg elegante oplossing.




  1. prestatiestraf van strings als primaire sleutels?

  2. Versiebeheer van tabellen (historische tabellen) en Relatie tabellen bestellen

  3. mysql-achtige prestatieverbetering

  4. MySQL kopieert meerdere rijwaarden met dezelfde ID naar nieuwe kolommen?