这条线,mDatabase.execSQL(sql);
,使我有以下错误:SQLite的删除语法错误
{ sqlite returned: error code = 1, msg = near "*": syntax error }
for Delete * from table_name Query
我的SQL查询:DELETE * FROM table_name
我该如何解决这个问题?
这条线,mDatabase.execSQL(sql);
,使我有以下错误:SQLite的删除语法错误
{ sqlite returned: error code = 1, msg = near "*": syntax error }
for Delete * from table_name Query
我的SQL查询:DELETE * FROM table_name
我该如何解决这个问题?
语法错误意味着您的语句基本拼写错误,无法解析。在这种情况下,错误消息指出发生这种错误的位置 - 在“*”字符上。在这种情况下,您应该访问数据库文档并检查您尝试使用的命令的正确语法。在SQLite的情况下,它是here。你可以在那里找到关于DELETE语句的文档,here是链接。它以图形方式向您显示语法(称为syntax diagrams或铁路图),应该很容易遵循。 在这种情况下,如前所述,您不能在DELETE和FROM之间指定“*”。这是因为您总是删除整行,并且无法删除单个选定的列。
谢谢,我明白了,但现在我正在使用sql密码库(jar)进行数据库操作。有没有什么办法可以找到这个sqlcipher.jar将支持这种类型的查询。 – Vishnu 2012-08-10 12:09:21
如果我正确理解这一点,sqlchipher不应该以任何方式影响sql查询,它应该支持与正常SQLite相同的查询(和相同的语法)。 – 2012-08-10 12:17:30
好吧,感谢您的回复,那么为什么我只为这个查询得到这个错误的特殊性。对于DELETE FROM table_name WHERE key = 3,它工作正常,它只给出DELETE * FROM的错误。我使用相同的mDatabase.exceSQL(sql)相同的语句来执行所有查询。任何其他方式来解决这个问题。 – Vishnu 2012-08-10 12:47:11
如果您需要删除整个表,你可以使用然后DROP TABLE如果不存在重新创建表
谢谢。根据Krzysztof Adamski的话我解决了这个问题。非常感谢您宝贵的时间。 – Vishnu 2012-09-10 12:50:25
ü可以把你的日志猫在这里.. – Sumant 2012-08-10 11:15:21
我无法现在附加日志猫,但我需要告诉你一件事,那就是声明mDatabase.execSQL(sql);对于如下查询正常工作:DELETE FROM table_name WHERE key = 2。但是对于这个DELETE * FROM table_name只有这个不起作用。我正在使用sql密码库(jar)进行数据库操作。提前致谢。 – Vishnu 2012-08-10 12:00:33