【发布时间】:2026-01-13 18:50:02
【问题描述】:
如果用户不存在,我需要创建一个语句,将用户添加到我的 SQLite 数据库中,否则更新其值并将 1 添加到他之前的 totalMessages。
到目前为止,我写了这个:
INSERT OR REPLACE INTO users (id, username, first, last, totalMessages) values (
'hisID',
'hisName',
'hisFirst',
'hisLast',
(SELECT totalMessages FROM users WHERE id = 'hisID') +1);
当用户已经存在时它工作正常,但当它不存在时,totalMessages 的值设置为 NULL,我需要它为 0。
这是我的用户表:
CREATE TABLE IF NOT EXISTS users (
id VARCHAR(255) PRIMARY KEY,
username VARCHAR(255),
first VARCHAR(255),
last VARCHAR(255),
totalMessages INTEGER)
谁能告诉我怎么做?
更新:我尝试按照 Scott 的建议使用“DEFAULT '0'”和“DEFAULT 0”,但它仍然将 totalMessages 保存为 NULL。
你可以看到它,测试是here。
【问题讨论】:
-
为什么这需要是一个单一的语句?
标签: sqlite replace insert default exists