SQLite INSERT - ON DUPLICATE KEY UPDATE(UPSERT)MySQL有这样的东西:INSERT INTO visits (ip, hits)VALUES ('127.0.0.1', 1)ON DUPLICATE KEY UPDATE hits = hits + 1;据我所知,SQLite中不存在此功能,我想知道的是,如果有任何方法可以实现相同的效果而无需执行两个查询。此外,如果无法做到这一点,您更喜欢什么:SELECT +(INSERT或UPDATE)或更新(如果UPDATE失败,则为 + INSERT )
3 回答
达令说
TA贡献1821条经验 获得超6个赞
从3.24.0开始,SQLite也支持upsert,所以现在你可以简单地编写以下内容
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON CONFLICT(ip) DO UPDATE SET hits = hits + 1;
慕的地8271018
TA贡献1796条经验 获得超4个赞
INSERT OR IGNORE INTO visits VALUES ($ip, 0);UPDATE visits SET hits = hits + 1 WHERE ip LIKE $ip;
这要求“ip”列具有UNIQUE(或PRIMARY KEY)约束。
添加回答
举报
0/150
提交
取消