【发布时间】:2022-01-10 09:58:05
【问题描述】:
如果用户名尚未出现,我正在尝试将(硬编码)新用户插入数据库。在下面的代码中,我试图让 sql 检查用户是否已经存在,如果存在则选择(或什么都不做),否则,将新用户插入表中。我尝试了多种编码方式,但无论我做什么,表格都不会填充!任何提示或想法都会非常有帮助,非常感谢。作为参考,我使用的是语言 C 的 sqllite3 扩展,我使用 sql_exec 函数进行查询。
尝试 1:
IF EXISTS ( SELECT * PERSON WHERE USERNAME='name') BEGIN SELECT 1 END ELSE BEGIN INSERT INTO PERSON (USERNAME, PASSWORD, STATUS, SIGNATURE) VALUES('name', 'password', 'ONLINE', '12345') END;
尝试 2:
IF NOT EXISTS ( INSERT INTO PERSON (USERNAME, PASSWORD, STATUS, SIGNATURE) VALUES('name', 'password', 'ONLINE', '12345') ) END ;
尝试 3:
WHERE NOT EXISTS ( INSERT INTO PERSON (USERNAME, PASSWORD, STATUS, SIGNATURE) VALUES('name', 'password', 'ONLINE', '12345') )
尝试 4:
WHERE NOT EXISTS ( INSERT INTO PERSON (USERNAME, PASSWORD, STATUS, SIGNATURE) VALUES('name', 'password', 'ONLINE', '12345') );
尝试 5:
I F NOT EXISTS ( SELECT 1 WHERE USERNAME='kat') BEGIN INSERT INTO PERSON (USERNAME, PASSWORD, STATUS, SIGNATURE) VALUES('name', 'password', 'ONLINE', '12345') END;
谢谢!!!!!!
【问题讨论】:
-
这能回答你的问题吗? "Insert if not exists" statement in SQLite
-
只需在该字段上添加一个唯一约束。