@Override
public void onCreate(SQLiteDatabase db) {
final String CREATE_IMAGE_TABLE = "CREATE TABLE " + TABLE_IMG + "("
+ KEY_ID + " INTEGER PRIMARY KEY autoincrement," + KEY_IMAGE_NAME + " TEXT,"
+ KEY_PATH + " TEXT" + ")";
final String CREATE_TAG_TABLE = "CREATE TABLE " + TABLE_TAG + "("
+ KEY_ID + " INTEGER PRIMARY KEY autoincrement," + KEY_TAG_NAME + " TEXT,"
+ KEY_TAG_DATE + " INTEGER" + ")";
final String CREATE_IMGTAG_TABLE = "CREATE TABLE " + TABLE_IMAGE_TAG + "(" + TAG_ID + " TEXT REFERENCES TABLE_TAG (tag_id)," + IMG_ID + " TEXT REFERENCES TABLE_IMG (img_id),"
+ KEY_ID + " INTEGER, " + "INTEGER PRIMARY KEY(IMG_ID,TAG_ID,KEY_ID)" + ")";
db.execSQL(CREATE_IMAGE_TABLE);
db.execSQL(CREATE_TAG_TABLE);
db.execSQL(CREATE_IMAGE_TAG_TABLE);
Log.i("TAG", "TABLES CREATED" + CREATE_IMAGE_TAG_TABLE);
}
皆さんこんにちは
画像データ、タグデータ、および画像のIDとタグデータを含む3つのテーブルを作成しようとしています。画像テーブルの Id とタグ テーブルの Id の参照を使用して 3 番目のテーブルを作成します。これらは両方とも独自のテーブルの主キーです。これらのテーブルの id の値を 3 番目のテーブルに追加したい場合、上記のようにクエリを実行しましたが、作成できません。それは私に構文エラーを与えます:
09-10 14:52:13.741: E/Database(9850): Failure 1 (near "(": syntax error) on 0x223a80 when preparing 'CREATE TABLE img_tag_table(tag_id TEXT REFERENCES TABLE_TAG (tag_id),img_id TEXT REFERENCES TABLE_IMG (img_id),id INTEGER, INTEGER PRIMARY KEY(IMG_ID,TAG_ID,KEY_ID))'.