2010-10-06 6 views
1

Je veux créer deux tables en DB, comment le faire en utilisant SQLiteOpenHelper descendant et en remplaçant onCreate metod? Est-ce que le code ci-dessous sera ok? Il semble que je me trompe.Encore une autre question de base de données Android SQLite

public void onCreate(SQLiteDatabase db){ 
     db.execSQL("CREATE TABLE "+CATEGORY_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
       CATEGORY_NAME+" TEXT NOT NULL);");  

     db.execSQL("CREATE TABLE "+RECIPES_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
       RECIPE_NAME+" TEXT NOT NULL, "+CATEGORY_ID+" INTEGER, "+ RECIPE+" TEXT NOT NULL);"); 
    } 
+0

Cela me semble bon. – AndrewKS

+0

J'ai utilisé le programme GUI pour explorer ma base de données et n'y ai trouvé qu'une seule table: \ –

+1

Si vous avez ajouté une deuxième instruction après avoir exécuté votre application au moins une fois, vous devrez désinstaller/effacer les données. –

Répondre

0

En fait, toutes les instructions de création doivent être exécutées dans une instruction execSQL. Un autre point que si vous voulez changer votre schéma db vous devez augmenter la version db - alors onCreate sera appelé à nouveau.

0

Aussi, je suggère "CREATE TABLE IF NOT EXISTS" au lieu de simplement "CREATE TABLE" que même si la même instruction SQL est exécutée deux fois, vous ne recevez pas l'exception.

Questions connexes