質問

単純なtag_mapテーブルがあります

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

追加した UNIQUE INDEX 投稿に関連付けられたタグのペアを複製しないようにします。今、私が新しいEnteriesを追加しようとするとき

INSERT IGNORE INTO (post_id,tag_id) VALUES (post1_id,tag1_id), (post1_id, tag2_id),...

エラーを受け取ります

ERROR 1062 (23000): Duplicate entry '16777215' for key 'PRIMARY'

しかし、私 SELECT ここで、tag_map_id = '16777215';これは別のタグと投稿に属します。

どこが間違っていましたか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top