Mysql
 sql >> Database >  >> RDS >> Mysql

Quale chiave univoca viene premuta con il mio inserto?

Come suggerito da Bobby, SHOW indexes restituisce un set di risultati con un relativo indice chiave, controlla questa pagina per ulteriori esempi:

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

Tuttavia, ciò probabilmente richiederà tanto codice se non più della seguente soluzione alternativa.

Controlla quale valore hai inserito collide con una riga esistente nella tabella:

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';

Anche se non è una soluzione molto elegante.