我的SQL语句的语法有问题,LogCat说问题就在WHERE附近。我哪里做错了?
这是我的代码:
var inName = "Test Name";
var inNumber = "Test Number";
db.transaction(function (tx) { tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES ( ?, ?) WHERE ? NOT IN (SELECT Name FROM SoccerPlayer)',[ inName, inNumber, inName ] });
任何帮助或建议都会很乐意接受,这是我项目的最后一块拼图。当我完成这件事时,我已经可以休息了。提前谢谢。
答案 0 :(得分:3)
INSERT
在WHERE
时不会进行UPDATE
投影。
可能你想要
INSERT INTO SoccerPlayer(Name,Club) VALUES (?, ?)
或
UPDATE SoccerPlayer SET Club=? WHERE Name=?
或者如果您想要在Name
已经存在的情况下进行更新或以其他方式插入,
INSERT OR UPDATE INTO SoccerPlayer(Name,Club) VALUES (?, ?)
您需要表格具有一些相关约束,例如Name TEXT UNIQUE
。
编辑:
如果名称已经存在,我希望我的插入函数忽略插入
然后,您可以如上所述制作Name
列UNIQUE
并使用INSERT OR IGNORE
代替INSERT OR UPDATE
。