
我一直在尝试使用这些代码,但它给了我一个错误:
public voID populate_base_Lists2(String tablename,String item) { ourDatabase.execsql("INSERT INTO " + tablename + " (" + KEY_name_PR + ") SELECT * FROM (SELECT " + item + ") WHERE NOT EXISTS (SELECT " + KEY_name_PR + " FROM " + tablename + " WHERE " + KEY_name_PR + " = " + item + ") liMIT 1;");} 03-11 17:27:20.972: E/AndroIDRuntime(658): Caused by:
androID.database.sqlite.sqliteException: no such column: Cheese:
INSERT INTO PR_Dairy_Products (product_name) SELECT * FROM (SELECT
Cheese) WHERE NOT EXISTS (SELECT product_name FROM PR_Dairy_Products
WHERE product_name = Cheese) liMIT 1;
代码来自:MySQL: Insert record if not exists in table
没有这样的列:干酪,好吧,我把那部分更改为KEY_name_PR,然后错误是相同的,但没有这样的列:product_name.该栏肯定存在.
更重要的是,我需要对此代码进行一些解释.我在一定程度上有sql知识,但我无法得到这个.
谢谢
解决方法 我认为你可能需要在变量项出现时单引号,因为它的值不是列名.试试这段代码:
public voID populate_base_Lists2(String tablename,String item) {ourDatabase.execsql("INSERT INTO " + tablename +" (" + KEY_name_PR + ") SELECT * FROM (SELECT '" + item + "')WHERE NOT EXISTS (SELECT " + KEY_name_PR +" FROM " + tablename + " WHERE " + KEY_name_PR + " = '" + item + "') liMIT 1;");} 希望有所帮助.
总结以上是内存溢出为你收集整理的Android sqlite插入记录(如果不存在)全部内容,希望文章能够帮你解决Android sqlite插入记录(如果不存在)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)