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

Error en Mysql

Estas en el tema de Error en Mysql en el foro de Bases de Datos General en Foros del Web. hola a todos otra vez espero y alguien me pueda ayudar mi problema es el siguiente tengo un error en mysql que dice " Duplicate ...
  #1 (permalink)  
Antiguo 12/08/2015, 09:29
 
Fecha de Ingreso: julio-2015
Ubicación: México DF
Mensajes: 10
Antigüedad: 8 años, 9 meses
Puntos: 0
Error en Mysql

hola a todos otra vez espero y alguien me pueda ayudar mi problema es el siguiente tengo un error en mysql que dice " Duplicate entry '' for key 'slug'" y no se a que se deba espero y alguien me ayude a comprender este error gracias.
  #2 (permalink)  
Antiguo 12/08/2015, 09:51
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, 5 meses
Puntos: 2658
Respuesta: Error en Mysql

A que intentas ingresar dos veces un valor en diferentes registros, para un campo que es PK, o que tiene definido un indice UNIQUE...
Es lo mas que se puede decir sin ver la consulta y la definicion del create table de la tabla en cuestión.

En resumen, es un problema con el dato que estás intentando guardar en el INSERT o UPDATE que tratas de ejecutar.
__________________
¿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 12/08/2015, 10:46
 
Fecha de Ingreso: julio-2015
Ubicación: México DF
Mensajes: 10
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Error en Mysql

gracias por tu ayuda amigo y mira esta es la tabla a donde quiero insertar los datos directamente...

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `jom_virtuemart_products_es_es` (
  2.   `virtuemart_product_id` int(1) unsigned NOT NULL,
  3.   `product_s_desc` varchar(2000) NOT NULL DEFAULT '',
  4.   `product_desc` varchar(18400) NOT NULL DEFAULT '',
  5.   `product_name` char(180) NOT NULL DEFAULT '',
  6.   `metadesc` varchar(400) NOT NULL DEFAULT '',
  7.   `metakey` varchar(400) NOT NULL DEFAULT '',
  8.   `customtitle` char(255) NOT NULL DEFAULT '',
  9.   `slug` char(192) NOT NULL DEFAULT '',
  10.   PRIMARY KEY (`virtuemart_product_id`),
  11.   UNIQUE KEY `slug` (`slug`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Última edición por gnzsoloyo; 12/08/2015 a las 11:10
  #4 (permalink)  
Antiguo 12/08/2015, 11:14
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, 5 meses
Puntos: 2658
Respuesta: Error en Mysql

¿Entendiste lo que te comenté más arriba sobre las claves UNIQUE?
Bueno, tienes esto en tu tabla (lo puedes ver en la linea 11):
Código MySQL:
Ver original
  1. ...
  2. UNIQUE KEY `slug` (`slug`)
  3. ...
Eso genera un índice único, cuya condición principal es que NO puede haber dos registros en esa tabla que tengan el mismo valor (contenido). Es lo que se denomina "clave alternativa", y no hay modo de saltar esa restricción.
Es decir que lo que te decía es cierto: Estás haciendo algún INSERT, o un UPDATE que intenta poner en un registro un valor en esa columna que ya existe en otro registro.
Ahora bien, para que te quede más claro aún: La unicidad abarca tanto los valores reales (caracteres en tu caso), como valores NULL o bien caracteres vacíos. Eso implica que no puedes poner TAMPOCO dos registros donde ese campos sea NULL, ni dos registros donde ese campo contenga un espacio nulo (espacios nulos no son NULL, son otra cosa).

¿Se entiende?

En definitiva, es un error de datos al ejecutar la sentencia. Te recomiendo realizar una validación sobre ese campo antes de ejecutar nada, verificando que el valor que vas a poner no exista ya.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql
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 15:08.