Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/12/2008, 04:12
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en columna o algo asi....

A que cuando insertas un registro usando menos campos de lso que existen en la tabla (incluyendo los autoincrement), debes declarar todos los campos que vas a cargar:
Código sql:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS `envia_contacto`$$
  3. CREATE PROCEDURE `envia_contacto`(
  4. d_contacto_estado bit,
  5. d_contacto_nombre VARCHAR(200),
  6. d_contacto_apellido VARCHAR(200),
  7. d_contacto_documento VARCHAR(50),
  8. d_contacto_email VARCHAR(100),
  9. d_contacto_telefono VARCHAR(35),
  10. d_contacto_telefono2 VARCHAR(35),
  11. d_contacto_direccion VARCHAR(100),
  12. d_contacto_tipo_mensaje VARCHAR(20),
  13. d_contacto_mensaje longtext,
  14. d_contacto_fecha datetime)
  15.  
  16. BEGIN
  17.  
  18. INSERT INTO mensaje_contacto(
  19.   msg_contacto_estado,
  20.   msg_contacto_nombre,
  21.   msg_contacto_apellido,
  22.   msg_contacto_documento,
  23.   msg_contacto_email,
  24.   msg_contacto_telefono,
  25.   msg_contacto_telefono2,
  26.   msg_contacto_direccion,
  27.   msg_contacto_tipo_mensaje,
  28.   msg_contacto_mensaje,
  29.   msg_contacto_fecha)
  30. VALUES(
  31.   d_contacto_estado,
  32.   d_contacto_nombre,
  33.   d_conta cto_apellido,
  34.   d_contacto_documento,
  35.   d_contacto_email ,
  36.   d_contacto_telefono,
  37.   d_contacto_telefono2,
  38.   d_contac to_direccion,
  39.   d_contacto_tipo_mensaje,
  40.   d_contacto_me nsaje,
  41.   d_contacto_fecha);
  42. END$$
  43. DELIMITER ;

El ID no va, porque es un auto_increment, pero precisamente porque estás omitiendo uno, es que tienes que poner todos los demás.
Esto es una regla general del SQL, no es única en MySQL. Oracle también exige lo mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 02/12/2008 a las 04:31