Which unique key is hit with my insert?

Which unique key is hit with my insert?

am 27.11.2009 13:48:01 von Jan Fabry

Hello,

When I have a table with (for example) three keys (one primary, auto-
increment, and two uniques on a column, eg. 'code' and 'name'), how
can I (efficiently) know which uniqueness constraint was violated when
doing an insert?

You get an error "#1062 - Duplicate entry 'Value' for key 2", but how
do I know key 2 is the key for the 'code' column and not the 'name'
column?

We develop this application with multiple developers, and I want to
prevent the day we don't add the constraints to a table in the same
order, so the second key on my machine is the third key on another
machine, and vice-versa.

Mapping to the exact column names involved is not really necessary,
just to the key name is enough.

I know I can use something like

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

But this is an extra query - is there a way to know it from the first
query?


I also posted this question on Stack Overflow [ http://stackoverflow.com/questions/1486068/which-unique-key- is-hit-with-my-insert
], but I want to check whether this is the best answer. If anything
new comes up here, I will also put in on the Stack Overflow page.

Greetings,

Jan Fabry

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=gcdmg-mysql-2@m.gmane.org