Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con tiggert

Estas en el tema de problema con tiggert en el foro de Mysql en Foros del Web. Buenos dias: Sabeís por que me da este error: "Column count doesn't match value count at row 1" al disparase el siguiente TIGGERT Código: CREATE ...
  #1 (permalink)  
Antiguo 29/03/2009, 07:02
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
problema con tiggert

Buenos dias:

Sabeís por que me da este error: "Column count doesn't match value count at row 1"
al disparase el siguiente TIGGERT

Código:
CREATE TRIGGER duplicados AFTER DELETE ON correos FOR EACH ROW INSERT INTO DUPLICADOS( email ) 
VALUES (
OLD.email, CURRENT_USER( ) , NOW( ) 
);
Parece ser que es por que que las estructuaras de la tablas son diferentes, pero las tengo iguales:

1.-
Código:
CREATE TABLE `duplicados` (
  `id` int(11) NOT NULL,
  `email` varchar(50) character set utf8 collate utf8_spanish2_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
;

2.-

Código:
CREATE TABLE `correos` (
  `id` int(11) NOT NULL auto_increment,
  `email` varchar(50) character set utf8 collate utf8_spanish2_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11731

Me estpy volviendo loco y no doy con ello. Necesito ayuda.
Gracias y un saludo
  #2 (permalink)  
Antiguo 29/03/2009, 08:56
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: problema con tiggert

La respuesta está en el mensaje de MySQL: Column count doesn't match value count at row 1
Esto significa: La cantidad de columnas no coincide con la cantidad de valores en el registro.
Y la razón es simple: ¿Cuántas columnas invocas en el INSERT y cuántas en el VALUE?:
Código sql:
Ver original
  1. CREATE TRIGGER duplicados AFTER DELETE ON correos
  2. FOR EACH ROW
  3.     INSERT INTO DUPLICADOS(email)
  4.     VALUES (OLD.email, CURRENT_USER( ) , NOW( ) );
Exacto: Estás indicando una sola columna en la lista de la tabla y le estás mandando tres valores.
Para que no te de este error debería ser:
Código sql:
Ver original
  1. CREATE TRIGGER duplicados AFTER DELETE ON correos
  2. FOR EACH ROW
  3.     INSERT INTO DUPLICADOS(email)
  4.     VALUES (OLD.email );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/03/2009, 09:21
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: problema con tiggert

Excelente explicación.
Resuelto. Muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:03.