Supprimer toutes les tables de base de données sqlite
J'ai fait beaucoup de recherches et a été incapable de trouver une méthode appropriée pour supprimer toutes les tables dans une base de données SQLite. Enfin, j'ai fait un code pour obtenir tous les noms de table à partir de la base de données et j'ai essayé de supprimer les tables à l'aide de l'extrait de la table des noms un par un. Il ne fonctionne pas ainsi.
Merci de me suggérer une méthode pour supprimer toutes les tables de la base de données.
C'est le code que j'ai utilisé:
public void deleteall(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
do
{
db.delete(c.getString(0),null,null);
}while (c.moveToNext());
}
fonction deleteall()
est appelé sur clic du bouton dont le code est donné ci-dessous:
public void ButtonClick(View view)
{
String Button_text;
Button_text = ((Button) view).getText().toString();
if(Button_text.equals("Delete Database"))
{
DatabaseHelper a = new DatabaseHelper(this);
a.deleteall();
Toast.makeText(getApplicationContext(), "Database Deleted Succesfully!", Toast.LENGTH_SHORT).show();
}}
Voulez-vous supprimer tous les tables de la base de données, ou tout simplement supprimer toutes les données dans les tables?
Ne pouvez-vous pas simplement de supprimer le fichier de base de données? stackoverflow.com/questions/4406067/...
Je veux supprimer toutes les tables de la base de données, non seulement supprimer les données dans les tables.Merci de me suggérer une méthode pour supprimer toutes les tables.
Je vous ai donné une réponse ci-dessous, laissez-moi savoir si cela fonctionne pour vous.
Vérifiez auprès de accepté de réponse dans ce lien.stackoverflow.com/questions/25641350/...
Ne pouvez-vous pas simplement de supprimer le fichier de base de données? stackoverflow.com/questions/4406067/...
Je veux supprimer toutes les tables de la base de données, non seulement supprimer les données dans les tables.Merci de me suggérer une méthode pour supprimer toutes les tables.
Je vous ai donné une réponse ci-dessous, laissez-moi savoir si cela fonctionne pour vous.
Vérifiez auprès de accepté de réponse dans ce lien.stackoverflow.com/questions/25641350/...
OriginalL'auteur Tony Mathew | 2016-07-30
Vous devez vous connecter pour publier un commentaire.
Utilisation
DROP TABLE
:OriginalL'auteur Tim Biegeleisen
Tim Biegeleisen réponse a presque fonctionné pour moi, mais parce que j'ai utilisé
AUTOINCREMENT
clés primaires dans mes tableaux, il y avait une table appeléesqlite_sequence
. SQLite crash lorsque la routine essayé de tomber de la table. Je ne pouvais pas attraper l'exception. En regardant https://www.sqlite.org/fileformat.html#internal_schema_objects, j'ai appris qu'il pouvait y avoir plusieurs de ces schéma interne tables que je ne devrais pas le laisser tomber. La documentation dit que l'une de ces tables ont des noms commençant par sqlite_ j'ai donc écrit cette méthodeOriginalL'auteur Jon
supprimer la base de données au lieu de supprimer les tableaux et en créer un nouveau avec le même nom si vous en avez besoin. utilisez le code suivant
OriginalL'auteur Ganesh Karewad
Pour moi, la solution de travail est:
OriginalL'auteur atlascoder