我正在尝试实施一个3表项目标记系统
表:项目
列:ItemID(主要,auto_increment),标题,内容
表:标签
列:TagID(primary,auto_increment),Title,TagCount
表:ItemTag
列:ItemID,TagID
标签的每个标题都是唯一的
我想实现一种有效的插入Tag表的方法:
1.检查标题是否存在
2.如果存在,请更新TagCount + 1
3.否则,如果不存在,请插入
我查看了INSERT ON DUPLICATE KEY UPDATE,但我很困惑,因为我的密钥是TagID而不是Title。
答案 0 :(得分:3)
我假设您正在尝试插入表格“Tag”。
您需要修改表并在标题字段上添加唯一索引:
alter table tag add unique index title(title);
然后,您可以执行以下操作
insert into tag (Title, TagCount) values ('blah',1)
on duplicate key update TagCount = TagCount + 1;
希望这对您有所帮助。
答案 1 :(得分:0)
您可能想要做的是在Tag Unique中创建“标题”字段。
如果你这样做,那么你可以这样做:
INSERT INTO Tag (Title, TagCount) VALUES ('<value>', 1)
ON DUPLICATE KEY UPDATE TagCount = TagCount + 1;