2010-08-09 7 views
4

J'essaie de supprimer 6 lignes de la base de données utilisant l'instruction suivante mais je reçois l'erreur ci-dessousSuppression nombre de lignes de base de données SQLite

getWritableDatabase(). ExecSQL ("SUPPRIMER DE COMMANDE tblname PAR _id ASC LIMITE 6; ");

Erreur: Causée par: android.database.sqlite.SQLiteException: près de « l'ordre »: erreur de syntaxe: SUPPRIMER DE tblname

J'ai essayé de reformater le SQL de différentes manières, mais je ne pouvais pas l'obtenir travailler. Qu'est-ce que je rate? Merci beaucoup pour votre aide

Répondre

8
DELETE FROM tblname WHERE `_id` IN (SELECT `_id` FROM tblname ORDER BY `_id` ASC LIMIT 6) 

Je pense que votre problème peut avoir été citer les _id, cependant.

+0

Merci. Ce SQL exact a fonctionné. Je ne suis pas vraiment sûr pourquoi le SQL original n'a pas fonctionné cependant. Selon cette documentation (pour l'utilisation de LIMIT dans DELETE) cela aurait dû fonctionner http://www.sqlite.org/lang_delete.html Merci encore pour votre aide. – Satish

4

Les options LIMIT et ORDER pour DELETE dans sqlite sont facultatives et il semble qu'elles ne sont pas activées sur Android. Le SQL de Borealid ci-dessus fonctionnera bien même sans les guillemets.

Questions connexes