MySQL - ERROR 1364 doesn't have a default value mysql>

   
Vista:

ERROR 1364 doesn't have a default value mysql>

Publicado por Sti-tixu (4 intervenciones) el 24/05/2012 19:33:16
Hola:
necesito vuestra ayuda por favor, este error me está volviendo majara y no sé cómo interpretarlo ni solucionarlo.
He insertado un campo nuevo en una tabla llamado 'letra_canc' que va a contener las letras de algunas canciones. Este es el script:
1
2
alter table canciones
modify column letra_canc text (50000) null;


Y este el de insercción:
1
2
3
4
5
INSERT INTO CANCIONES (LETRA_CANC)
VALUES ("You know I love you You know it's true Give you all my love, babe What more can I do? Walking by myself I hope you'll understand  just want to be your lovin' man
I love ya, yes I love you with my heart and soul I wouldn't mistreat you for my weight in gold You know I love you You know it's true Give you all my love, babe
What more can I do? Walking by myself I hope you'll understand I just want to be your lovin' man Here we go! Keep on walkin'! You know I love you You know it's true I give you all my, babe What more can I do?
I'm walking by myself I hope you'll understand I just want to be your lovin' man I said I'm walking by myself I hope you'll understand I just want to be your lovin' I just want to be your lovin' just want to be your lovin' man That's right.")


Sin embargo me devuelve este error y no sé qué signfica, porque he visto en otros foros que es porque el campo es not null y había que cambiarlo a null, pero el mío ya es null:

1
2
ERROR 1364 (HY000): Field 'TIT_CANCION' doesn't have a default value
mysql>


¿cómo puedo solucionarlo?

Gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ERROR 1364 doesn't have a default value mysql>

Publicado por Gonzalo GC (339 intervenciones) el 05/06/2012 03:46:33
Estás usando incorrectamente las comillas. Las cadenas de texto se manejan en SQL con apostrofos ('), no con comillas.
El problema es que tienes apostrofos dentro del texto, por lo que el mismo se corta o transforma en NULL, y no se inserta.
Tienes que resolver el problema a través de la aplicación, escapando los apostrofos interiores del texto.

Tiene que quedar así:
1
2
INSERT INTO CANCIONES (LETRA_CANC)
VALUES ('You know I love you You know it\'s true Give you all my love, babe What more can I do? Walking by myself I hope you\'ll understand just want to be your lovin\' man I love ya, yes I love you with my heart and soul I wouldn\'t mistreat you for my weight in gold You know I love you You know it\'s true Give you all my love, babe What more can I do? Walking by myself I hope you\'ll understand I just want to be your lovin\' man Here we go! Keep on walkin\'! You know I love you You know it\'s true I give you all my, babe What more can I do? I\'m walking by myself I hope you\'ll understand I just want to be your lovin\' man I said I\'m walking by myself I hope you\'ll understand I just want to be your lovin\' I just want to be your lovin\' just want to be your lovin\' man That\'s right.')

El escape (\) le indica aa MySQL que lo que sigue no es un aóstrofo delimitador de texto, sino el caracter correspondiente.
Este tipo de control se debe hacer en la programación de la aplicación.

Verifica el lenguaje que estés usando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar