estoy recibiendo un error extraño 'truncado valor INTEGER incorrecto' cuando corro la siguiente consulta UPDATE:MySQL 'truncado valor INTEGER incorrectos'
update tbl
set projectNumber = right(comments, 7)
where createdBy = 'me'
and length(CONVERT(right(comments, 7), SIGNED INTEGER)) = 7
and CONVERT(right(comments, 7), SIGNED INTEGER) > 0
and CONVERT(right(comments, 7), SIGNED INTEGER) is not null
and createdOn > '2011-01-31 12:00:00'
and projectNumber is null
ProjectNumber es VARCHAR (10).
Cuando lo ejecuto como una selección directa, no obtengo un error y veo los resultados como se esperaba. ¿Algunas ideas? Básicamente estoy intentando actualizar el campo projectNumber donde el final de los comentarios en las notas importadas son 7 caracteres numéricos (pero projectNumber no son siempre 7 numéricos, por lo que el campo es varchar (10)).
interesante. Sí dice el Código de Error 1292 (como su ejemplo), pero puedo confirmar que la actualización * no * se está ejecutando. Debo tener una configuración para abortar las advertencias en las actualizaciones? Seguiré cavando –
Sospecho que su servidor se está ejecutando en el modo SQL 'TRADICIONAL', que convierte todas las advertencias en errores. http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_traditional – Mchl
Derecha. De hecho, decidí usar solo una expresión regular (y derecha (comentarios, 7) REGEXP '^ [0-9] + $') y olvidarme de las tonterías de conversión. Funcionó bien. Muchas gracias por su ayuda. –