0

別のテーブルへの2つの外部キーを持つ1つのテーブルを作成していました。しかし、それでもクエリにエラーがあります。

ここにコード:

    //inialitation attribute
    public static final String TABLE_MATRIKPENDAPAT = "tableMatrikPendapat";
    public static final String MATRIK_IDKRITERIA1 = "matrikIdKriteria1";
    public static final String MATRIK_IDKRITERIA2 = "matrikIdKriteria2";
    public static final String MATRIK_NILAI = "nilaiMatrik";

    //create query

    private static final String CREATE_TABLE_MATRIKPENDAPAT = "create table "
            + TABLE_MATRIKPENDAPAT + " ("
            + MATRIK_IDKRITERIA1 + " integer , FOREIGN KEY ("+ MATRIK_IDKRITERIA1 +") REFERENCES "
            + TABLE_KRITERIA + " ("+ KRITERIA_ID +"), " 
            + MATRIK_IDKRITERIA2 + " integer , FOREIGN KEY ("+ MATRIK_IDKRITERIA2 +") REFERENCES "
            + TABLE_KRITERIA + " ("+ KRITERIA_ID +"), "
            + MATRIK_NILAI + " integer not null);";

そして、エラーは言った:

sqlite.SQLiteException: near "matrikIdKriteria2": syntax error

ここのように、1つの外部キーで作成する場合:

    private static final String CREATE_TABLE_MATRIKPENDAPAT = "create table "
    + TABLE_MATRIKPENDAPAT + " ("
    + MATRIK_IDKRITERIA1 + " integer , FOREIGN KEY ("+ MATRIK_IDKRITERIA1 +") REFERENCES "
    + TABLE_KRITERIA + " ("+ KRITERIA_ID +"), " 
    + MATRIK_NILAI + " integer not null);";

エラーは言った:

sqlite.SQLiteException:「nilaiMatrik」の近く:構文エラー

したがって、最初の外部キーの後のクエリでの私の問題だと思います。

正しいクエリは何ですか?助けてください

4

1 に答える 1

1

これ:

integer , FOREIGN 

する必要があります

integer  FOREIGN 

コンマを使用すると、別の列のように見えます。

ここに私が持っているものがあります:

   + BookTableMetaData.BOOK_USER_ID + " INTEGER REFERENCES "
   + UserTableMetaData.TABLE_NAME + "("
+ UserTableMetaData._ID + "),"

したがって、これをセットアップで機能させるには

MATRIK_IDKRITERIA1 + " integer REFERENCES "
+ TABLE_KRITERIA + " ("+ KRITERIA_ID +")

これで十分かもしれません。

于 2012-06-16T04:56:30.473 に答える