Android sqlite複数のテーブル

私は、sqliteデータベースに2つのテーブルを作成したい。私はエミュレータからPCにdbを引っ張ったが、2番目のテーブルを作成することはできません最初のテーブルが正常に作成されました。作成されるテーブルの成功を確認することはできますか?データが入力されていないことはありますか?または、まずデータを入力してから、まずエミュレータからDBを取り出して手動で見ることができますか?

ここで私のコードは、複数のテーブルを作成する

db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, jekel TEXT);");
db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER FOREIGN KEY REFERENCES almag (_id));"); //create table score
0
テーブルの作成が失敗した場合は、logcatにログインする必要があります。どのAndroidバージョンをお使いですか?このスタックオーバーフローに関する質問のコメントに記載されているように、外部キーはAndroid 2.2以下ではサポートされていません
追加された 著者 thaussma,
古いバージョンをターゲットにしていない場合は、 stackoverflow.com/questions/2545558/… そうでなければ、外部キー制約をシミュレートするTRIGGERを記述する必要があります.Googleが簡単に手助けします。
追加された 著者 Jens,
私は2.2を使用します。 2.2で外部キーを作成する別の方法はありますか?
追加された 著者 kumisku,
おかげでジェンス、私はすでにそれを解決:)
追加された 著者 kumisku,

3 答え

私はすでにアンドロイド2.2でこれらのコードを追加する必要が外来のキーを追加するために、それを解決した

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE almag (_id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, jekel TEXT);");
    db.execSQL("CREATE TABLE score (_id INTEGER PRIMARY KEY AUTOINCREMENT, score INTEGER, userId INTEGER NOT NULL, FOREIGN KEY (userId) REFERENCES almag(_id) ON DELETE CASCADE);"); //create table score
    db.execSQL("PRAGMA foreign_keys = ON;");
}

reference http://panierter-pinguin.de/blog/?p=138

3
追加された

この場合、db.execSQL(Table_CREATE_SQL)は正常に動作するはずですが、データを返す手段はありませんが、SQL文字列が無効な場合はSQLExceptionをスローします。

You can pull out the DB & use SQLite browser to check the tables.

0
追加された
私はそれをもう一度チェックしましたが、私が見ることのできるalmagテーブル
追加された 著者 kumisku,

データベースから手動で(プログラムでない)データを見るには、Firefoxの SQLiteManager プラグインを使用できます

0
追加された