Tengo una base de datos SQLite. Estoy tratando de insertar valores ( users_id
, lessoninfo_id
) en la tabla bookmarks
, solo si ambos no existen antes en una fila.
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+")))
Esto da un error que dice:
error db cerca de donde la sintaxis.
fuente
person (id, name unique)
ycat (person_id, name unique)
quiero insertar muchos pares(person_name, cat_name)
.ON CONFLICT IGNORE
aCREATE TABLE
que sería un poco más manejablePara una columna única, use esto:
Para obtener más información, consulte: sqlite.org/lang_insert
fuente
Unique(col1,col2)
y también tiene col3, porque una inserción o ignorar fallaría cuando esto actualice col3 al nuevo valor.insert or replace into my_table values('1','2','5')
reemplaza una fila'1','2','3'
Esta es la forma más rápida.
Para algunos otros motores SQL, puede usar una tabla ficticia que contenga 1 registro. p.ej:
fuente