0

それぞれが制約付きでバインドされている21個のテーブルを使用してデータベースを構築しようとしています。PHPmyAdminでデータベースを実装してから、構造スクリプトをダウンロードしてAndroidSQLiteデータベースにインポートしました。

しかし、Androidで多くのテーブルを使用してリレーショナルデータベースを構築する際のグッドプラクティスと、それらを作成する方法を知りたいと思います。

現在、SQLiteOpenHelperを実装するクラスがあります。

public class SqlSig extends SQLiteOpenHelper {

@Override
public void onCreate(SQLiteDatabase db) {
    for(int i = 0; i != ConfigBDD.requetes.length; i++){
        db.execSQL(ConfigBDD.requetes[i]);
    }
}
}

ConfigBDD.requetes [i]は、テーブル作成要求と制約要求を含む文字列配列をフェッチします。このコードはまったく機能せず、logCatはPRIMARYKEY命令でエラーを表示します。

 05-29 15:13:51.992: E/Database(8187): Failure 1 (near "KEY": syntax error) on 0x15c4b8
 when preparing 'CREATE TABLE IF NOT EXISTS `arret` ( `id` int(11) NOT NULL , `id_externe`
 varchar(10) DEFAULT NULL, `id_pid` int(11) NOT NULL, `nom` varchar(50) NOT NULL,
 `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `id_pid` (`id_pid`) )
 DEFAULT CHARSET=utf8 =1 ;'.

このデータベースを作成する他の方法があると確信していますが、マルチテーブルAndroidSQLiteデータベースの作成に関する説明は見つかりませんでした...

4

1 に答える 1

5

あなたの:

CREATE TABLE IF NOT EXISTS `arret` ( 
  `id` int(11) NOT NULL , 
  `id_externe` varchar(10) DEFAULT NULL, 
  `id_pid` int(11) NOT NULL, 
  `nom` varchar(50) NOT NULL,
  `description` varchar(255) DEFAULT NULL, 
   PRIMARY KEY (`id`), 
   KEY `id_pid` (`id_pid`))
DEFAULT CHARSET=utf8 =1 ;

SQLiteで動作させたい場合は、おそらく次のようになります。

CREATE TABLE IF NOT EXISTS arret ( 
  id INTEGER PRIMARY KEY NOT NULL , 
  id_externe TEXT DEFAULT NULL,
  id_pid INTEGER NOT NULL,
  nom TEXT NOT NULL,
  description TEXT
);

その後に、MySQLで意味するCREATE INDEXものid_pidであるforyourが続きます。KEY

于 2012-05-29T13:32:24.657 に答える