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.