为了账号安全,请及时绑定邮箱和手机立即绑定

SQLite中的“插入如果不存在”语句

SQLite中的“插入如果不存在”语句

SQLite中的“插入如果不存在”语句我有一个SQLite数据库。我试图插入值(users_id, lessoninfo_id)在餐桌上bookmarks,只有在这两者都不存在的情况下才行。INSERT INTO bookmarks(users_id,lessoninfo_id) VALUES(     (SELECT _id FROM Users WHERE User='"+$('#user_lesson').html()+"'),         (SELECT _id FROM lessoninfo          WHERE Lesson="+lesson_no+" AND cast(starttime AS int)="+Math.floor(result_set.rows.item(markerCount-1).starttime)+")          WHERE NOT EXISTS (             SELECT users_id,lessoninfo_id from bookmarks              WHERE users_id=(SELECT _id FROM Users              WHERE User='"+$('#user_lesson').html()+"') AND lessoninfo_id=(                 SELECT _id FROM lessoninfo                WHERE Lesson="+lesson_no+")))这会产生一个错误,即:语法附近的DB错误。
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

对于唯一的列,请使用以下内容:

INSERT OR REPLACE INTO table () values();

有关更多信息,请参见:org/lang_INSERT


查看完整回答
反对 回复 2019-07-03
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

如果您不希望有重复项,则应该将其声明为表约束:

CREATE TABLE bookmarks(
    users_id INTEGER,
    lessoninfo_id INTEGER,
    UNIQUE(users_id, lessoninfo_id));

(两列上的主键具有相同的效果。)

然后,就可以告诉数据库您想要悄悄的忽略违反这种约束的记录。:

INSERT OR IGNORE INTO bookmarks(users_id, lessoninfo_id) VALUES(123, 456)


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 1428 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信