MySQL有如下功能:
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON DUPLICATE KEY UPDATE hits = hits + 1;
据我所知,SQLite中不存在此功能,我想知道的是,是否有任何方法可以在不执行两个查询的情况下实现相同的效果.此外,如果不可能,您更喜欢什么:
- SELECT + (INSERT or UPDATE)或
- UPDATE (+ INSERT if UPDATE fails)
MySQL有如下功能:
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON DUPLICATE KEY UPDATE hits = hits + 1;
据我所知,SQLite中不存在此功能,我想知道的是,是否有任何方法可以在不执行两个查询的情况下实现相同的效果.此外,如果不可能,您更喜欢什么:
Since 3.24.0 SQLite also supports upsert,现在你可以简单地写下
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON CONFLICT(ip) DO UPDATE SET hits = hits + 1;