gpt4 book ai didi

sqlite - SQLite 中的 "Insert if not exists"语句

转载 作者:IT王子 更新时间:2023-10-29 06:16:46 25 4
gpt4 key购买 nike

我有一个 SQLite 数据库。我正在尝试在表 bookmarks 中插入值(users_idlessoninfo_id),前提是两者之前都不存在。

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 error near where syntax.

最佳答案

如果您不想重复,您应该将其声明为表约束:

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

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

然后可以告诉数据库你想要 silently ignore records that would violate such a constraint :

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

关于sqlite - SQLite 中的 "Insert if not exists"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com