我有一个包含 3 列的 sql 表,其中没有一个是 UNIQUE (但名称+角色对是):
Name | Role | Votes
我需要做的是,编写一个遵守以下规则的 sqllite 查询:
- 如果已存在具有给定名称和角色的行,则投票数增加 1
- 如果不是,则使用 Votes = 1 创建一个新行
我已经研究过 INSERT OR REPLACE 和这篇很棒的帖子,但它似乎对我没有太大帮助,我什至不确定 INSERT OR REPLACE 是一个可行的选择,因为类似
INSERT OR REPLACE INTO words (name,role,votes)
VALUES ('foo','bar', coalesce((
select votes from words where name = 'foo' and role='bar'),0)+1)
总是插入并且从不替换