Inserte en una tabla con un índice único para dos columnas
-
30-10-2019 - |
Pregunta
Tengo una tabla TAG_MAP simple como
CREATE TABLE tag_map
(
tag_map_id mediumint(7) unsigned NOT NULL AUTO_INCREMENT,
post_id mediumint(7) unsigned REFERENCES posts(post_id),
tag_id mediumint(7) unsigned REFERENCES tags(tag_id),
UNIQUE INDEX (post_id,tag_id),
PRIMARY KEY(tag_map_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci
yo añadí UNIQUE INDEX
Para evitar pares duplicados de una etiqueta asociada a una publicación. Ahora, cuando intento agregar nuevos Enteries como
INSERT IGNORE INTO (post_id,tag_id) VALUES (post1_id,tag1_id), (post1_id, tag2_id),...
Recibiré un error
ERROR 1062 (23000): Duplicate entry '16777215' for key 'PRIMARY'
Pero cuando yo SELECT
Donde tag_map_id = '16777215'; Esto pertenece a una etiqueta y publicación diferentes.
¿Dónde me equivocé?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow