Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/05/2015, 06:36
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 al guardar

Mira, tu estás poniendo esto en el INSERT:
Código SQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`link_id`, `term_id`, `weight`)
  2. SELECT 0, `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0' GROUP BY `term` ORDER BY `term` DESC
A mi entender, estás suponiendo que un cero es NULL, y no es así. Un cero es un dato, una magnitud real, mientras que NULL es un estado de indefinición. No es lo mismo y para las bases de datos eso es crítico.
Cuando usas un AUTO_INCREMENT, la idea es NO PONER la columna, o bien poner NULL donde va ese valor. Al ponerle un cero (0) lo que haces es intentar insertar un dato valido más de una vez en un campo es que es PRIMARY KEY.
Y si recuerdas, los valores de una PK son únicos, irrepetibles, en cada tabla...
Lo pones así:
Código MySQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`link_id`, `term_id`, `weight`)
  2. SELECT NULL, `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0'
  5. GROUP BY `term`
  6. ORDER BY `term` DESC
O lo pones así:
Código MySQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`term_id`, `weight`)
  2. SELECT `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0'
  5. GROUP BY `term`
  6. ORDER BY `term` DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)