Saltar al contenido

MySQL 1062 – Entrada duplicada ‘0’ para key ‘PRIMARIO’

Si encuentras algún detalle que no entiendes puedes dejarlo en los comentarios y trataremos de ayudarte tan rápido como podamos.

Solución:

Debe especificar el principal key como incremento automático

CREATE TABLE `momento_distribution`
  (
     `momento_id`       INT(11) NOT NULL AUTO_INCREMENT,
     `momento_idmember` INT(11) NOT NULL,
     `created_at`       DATETIME DEFAULT NULL,
     `updated_at`       DATETIME DEFAULT NULL,
     `unread`           TINYINT(1) DEFAULT '1',
     `accepted`         VARCHAR(10) NOT NULL DEFAULT 'pending',
     `ext_member`       VARCHAR(255) DEFAULT NULL,
     PRIMARY KEY (`momento_id`, `momento_idmember`),
     KEY `momento_distribution_FI_2` (`momento_idmember`),
     KEY `accepted` (`accepted`, `ext_member`)
  )
ENGINE=InnoDB
DEFAULT CHARSET=latin1$$

Con respecto al comentario a continuación, ¿qué tal:

ALTER TABLE `momento_distribution`
  CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`id`);

UNA CLAVE PRIMARIA es un índice único, por lo que si contiene duplicados, no puede asignar la columna para que sea un índice único, por lo que es posible que deba crear una nueva columna por completo

Ejecute la siguiente consulta en la consola mysql:

SHOW CREATE TABLE momento_distribution

Busque la línea que se parece a

CONSTRAINT `momento_distribution_FK_1` FOREIGN KEY (`momento_id`) REFERENCES `momento` (`id`)

Puede ser diferente, solo adivino lo que podría ser. Si tienes un extranjero key tanto en ‘momento_id’ como en ‘momento_idmember’, obtendrá dos extranjeros key nombres El siguiente paso es eliminar el extranjero. keys. Ejecute las siguientes consultas:

ALTER TABLE momento_distribution DROP FOREIGN KEY momento_distribution_FK_1
ALTER TABLE momento_distribution DROP FOREIGN KEY momento_distribution_FK_2

Asegúrese de cambiar el extranjero key nombre a lo que obtuviste de la CREATE TABLE consulta. Ahora no tienes ningún extranjero keys para que pueda quitar fácilmente el primario key. Prueba lo siguiente:

ALTER TABLE  `momento_distribution` DROP PRIMARY KEY

Agregue la columna requerida de la siguiente manera:

ALTER TABLE  `momento_distribution` ADD  `id` INT( 11 ) NOT NULL  PRIMARY KEY AUTO_INCREMENT FIRST

Esta consulta también agrega números, por lo que no necesitará depender de @rowid. Ahora necesita agregar el extranjero key volver a las columnas anteriores. Para eso, primero haz estos índices:

ALTER TABLE  `momento_distribution` ADD INDEX (  `momento_id` )
ALTER TABLE  `momento_distribution` ADD INDEX (  `momento_idmember` )

Ahora agregue el extranjero keys. Cambie la tabla/columna de referencia según lo necesite:

ALTER TABLE  `momento_distribution` ADD FOREIGN KEY ( `momento_id`) REFERENCES  `momento` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT 
ALTER TABLE  `momento_distribution` ADD FOREIGN KEY ( `momento_idmember`) REFERENCES  `member` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT 

Espero que ayude. Si obtiene algún error, edite la pregunta con la estructura de las tablas de referencia y los códigos de error que está recibiendo.

compruebe si su campo con el primario key está configurado para incremento automático

Puedes añadir valor a nuestro contenido contribuyendo tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *