primary para for error entry entrada duplicate duplicada clave mysql database

para - error 1062 mysql



Error de MySQL-# 1062-Entrada duplicada '''' para la clave 2 (8)

Estoy tratando de insertar una gran lista de usuarios en una base de datos MySQL pero cada vez que lo intento me sale el error:

#1062 - Duplicate entry '''' for key 2

Me da esto porque la segunda columna está en blanco en muchas de las entradas, por lo que después de insertar una entrada en blanco en la columna 2, no me permite agregar otra. Sin embargo, cuando agregué la mayoría de la lista de ayer, no recibí este error una vez, aunque muchas de las entradas que agregué ayer tienen una celda en blanco en la columna 2 también. ¿Que esta pasando?

Este es el código sql para insertar 1 entrada. El resto sigue el mismo formato:

INSERT INTO users (`id`,`title`,`firstname`,`lastname`,`company`,`address`,`city`,`county` ,`postcode`,`phone`,`mobile`,`category`,`email`,`password`,`userlevel`) VALUES ('''','''',''John'',''Doe'',''company'',''Streeet'',''city'',''county'' ,''postcode'',''phone'','''',''category'',''[email protected]'','''','''');


  1. Primero suelte la clave principal: (La clave principal es su responsabilidad)

    ALTER TABLE Persons DROP PRIMARY KEY ;

  2. Luego haz todas las inserciones:

  3. Agregue una nueva clave primaria al igual que antes de soltar:

    ALTER TABLE Persons ADD PRIMARY KEY (P_Id);


Además de la respuesta de Sabeen:

La primera identificación de columna es su clave principal.
No inserte '''' en la clave principal, inserte null en su lugar.

INSERT INTO users (`id`,`title`,`firstname`,`lastname`,`company`,`address`,`city`,`county` ,`postcode`,`phone`,`mobile`,`category`,`email`,`password`,`userlevel`) VALUES (null,'''',''John'',''Doe'',''company'',''Streeet'',''city'',''county'' ,''postcode'',''phone'','''',''category'',''[email protected]'','''','''');

Si es una clave de autoincremento, esto solucionará su problema.
Si no es así, haga de id una clave de autoincremento, y siempre insértela null para activar un autoincremento.

MySQL tiene una configuración para autoincrementar claves solo en inserción null o en ambas inserciones de 0 y null . No cuente con esta configuración, porque su código puede romperse si cambia de servidor.
Si inserta null su código siempre funcionará.

Consulte: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html


Como se dijo tiene un índice único.

Sin embargo, cuando agregué la mayoría de la lista de ayer, no recibí este error una vez, aunque muchas de las entradas que agregué ayer tienen una celda en blanco en la columna 2 también. ¿Que esta pasando?

Eso significa que todas estas entradas contienen un valor NULL , no una cadena vacía '''' . Mysql le permite tener múltiples valores NULL en campos únicos.


Echa un vistazo a su tabla de índice. Si ese campo obtuvo un índice (por ejemplo, un índice de árbol B +). En ese momento, la actualización o consulta de inserción produce este tipo de error.

Elimine la indexación y luego intente disparar la misma consulta.


Error ''Entrada duplicada'' 338620-7 ''para la clave 2'' en la consulta. Base de datos predeterminada

Para este error:

set global sql_slave_skip_counter=1; start slave; show slave status/G

Esto funciono para mi


Obtuve este error cuando intenté establecer una columna como única cuando ya había datos duplicados en la columna O si intentas agregar una columna y establecerla como única cuando ya hay datos en la tabla.

Tuve una tabla con 5 filas e intenté agregar una columna única y falló porque las 5 filas estarían vacías y, por lo tanto, no serían únicas.

Creé la columna sin el conjunto de índice único, luego completé los datos y luego la configuré como única y todo funcionó.


Parece que la segunda columna se establece como un índice único. Si no necesitas que lo elimines y tus errores desaparecerán. Posiblemente haya agregado el índice por error y es por eso que está viendo los errores de hoy y no los vio ayer.


puedes intentar agregar

$db[''db_debug''] = FALSE;

en "su archivo de base de datos" .php después de eso, puede modificar su base de datos como desee.