MySQL - Error 1136 en campo con NULL en un INSERT

   
Vista:

Error 1136 en campo con NULL en un INSERT

Publicado por Stitxu (4 intervenciones) el 02/03/2012 09:59:31
¡Hola!

Estoy empezando a programar y me he topado con este error que no sé muy bien cómo solucionarlo...

Tengo este INSERT

insert into campeonato (id_competicion, id_temporada, campeon, subcampeon)
values (3,3,7);


y el campo "Subcampeon" está como NULL y sin embargo me devuelve el siguiente error:

0 43 19:22:32 insert into campeonato (id_competicion, id_temporada, campeon, subcampeon) values (3,3,7) Error Code: 1136. Column count doesn't match value count at row 1 0.000 sec


Siento no daros más datos pero ahora mismo no tengo la bd delante. Si podéis ayudarme os lo agredecería muchíiiiismo

Saludos
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 1136 en campo con NULL en un INSERT

Publicado por Gonzalo GC (339 intervenciones) el 03/03/2012 03:23:07
Estás indicando cuatro campos para insertar datos (id_competicion, id_temporada, campeon y subcampeon), pero sólo pones tres valores (3,3 y 7) ... Te falta un dato en el VALUES.
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

Error 1136 en campo con NULL en un INSERT

Publicado por Stitxu (4 intervenciones) el 04/03/2012 21:55:26
Gracias por contestar Gonzalo. No si ya sabía que ese era el error... pero me gustaría saber si en algún momento uno de esos datos no existiera, ¿cómo lo tengo que expecificar en el campo para que no me devuelva ese error? ¿se hace con NULL o NOT NULL, no?

Saludos y gracias
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

Error 1136 en campo con NULL en un INSERT

Publicado por Gonzalo GC (339 intervenciones) el 05/03/2012 00:21:55
El problema no es de estructura de tabla. Le puedes poner, si quieres, a todos los campos de la tabla que acepten NULL, y de todos modos esa sentencia te dará un error. El problema es que tu estas indicando que se van a insertar los cuatro campos, entonces estás obligado a poner los cuatro valores.
SI uno de los valores no existe para ser insertado sólo tienes una opción: No debes indicar que se ingresará ese campo.
O sea, si el conjunto a insertar fuesen sólo id_competicion, id_temporada y campeon, sin poner subcampeón, entonces el INSERT quedaría:
1
2
INSERT INTO campeonato (id_competicion, id_temporada, campeon)
VALUES(3,3,7);

En otras palabras: Para lograr eso tienes que crear la sentencia de forma dinámica, con el lenguaje de programación que vayas a usar, de acuerdo a los valores disponibles para insertar.
No hay otro camino.

PD: Usar stored procedures lo único que hará es hacer la misma construcción de sentencia, pero con un código mucho más complicado.
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

Error 1136 en campo con NULL en un INSERT

Publicado por Stitxu (4 intervenciones) el 05/03/2012 08:36:21
Muchísimas gracias Gonzalo por tu respuesta. Dicen que no te acostarás sin saber una cosa más, y me acabas de solucionar una práctica entera!!! =D

Saludos
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