2012-07-08 22 views
5

que tiene un índice de unique en una columna llamada label, pero por alguna extraña razón por la que tratar de hacer una actualización como:entrada MySQL duplicado para la tecla ACTUALIZAR

UPDATE books SET label = 'foo bar', title = 'something new', modified = UTC_TIMESTAMP(); 

Y ya existe una fila con la etiqueta = 'foo bar' este error:

#1062 - Duplicate entry 'foo bar' for key 'label' 

¿Cómo puedo hacer que MySQL haga la actualización? Esto no debería estar rompiéndose porque técnicamente todavía hay una sola fila con la clave foo bar.

Gracias.

Respuesta

9

Esta consulta SQL intenta actualizar todos los registros en la tabla de libros con esos valores, porque no tiene una cláusula WHERE. Está fallando porque solo puede tener un registro con ese valor de etiqueta, pero la consulta quiere establecerlos todos.

Creo que posiblemente no estés ejecutando la consulta que pretendías. Tal vez quisiste actualizar el título y la hora del registro con esa etiqueta. Verifica tu sintaxis

+1

Jesús, cara a la palma. Lo siento, y gracias. – Justin

+3

No hay problema. A Justin ayudando a Justin es natural;) Si solucionó el problema, ¡no olvides golpear el cheque verde! – jdi

Cuestiones relacionadas