2016-12-16 7 views
-2

を作成しながら、任意のヘルプはSqliteをエラー私はsqliteのエラーを取得していますなぜテーブル

public static final String KEY_ORDERID="id_order"; 
    public static final String KEY_SUBTRUCKID="id_subtruck"; 
    public static final String KEY_TRUCK_NUMBER="id_trucknmbr"; 

private static final String CREATE_MASTER_TRUCK_DETAIL = "CREATE TABLE " 
      + TABLE_TRUCK_DETAIL_MASTER_DATA + " (" 
      + KEY_SUBTRUCKID + " TEXT," 
      + KEY_ORDERID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"+")"; 

    private static final String CREATE_SLAVE_TRUCK_DETAIL = "CREATE TABLE " 
     + TABLE_TRUCK_DETAIL_SLAVE_DATA+ " (" 
     + KEY_ORDERID + " INTEGER," 
     + KEY_TRUCK_NUMBER + " TEXT," 
     + " FOREIGN KEY ("+KEY_SUBTRUCKID+") REFERENCES " 
     +TABLE_TRUCK_DETAIL_MASTER_DATA+" ("+KEY_SUBTRUCKID+"))"; 

ログインエラー感謝:CREATE_SLAVE_TRUCK_DETAILTABLE_TRUCK_DETAIL_MASTER_DATA

unknown column "id_subtruck" in foreign key definition (code 1): , while compiling: CREATE TABLE truckslave (id_order INTEGER,id_trucknmbr TEXT, FOREIGN KEY (id_subtruck) REFERENCES truckmaster (id_subtruck)) 
+2

無効なSQL構文であるREFERENCESの後にCreate文の中に 'Create'文があります。 –

+0

'+" FOREIGN KEY( "+ KEY_SUBTRUCKID +")REFERENCESの部分が間違っています。テーブルの中に 'KEY_SUBTRUCKID'という名前の列がないので。あなたはその列を追加する必要があります – GVillani82

+0

@ GVillani82私はマスターテーブルにこの列を追加しましたCREATE_MASTER_TRUCK_DETAIL –

答えて

0

変更CREATE_MASTER_TRUCK_DETAILを:

private static final String CREATE_SLAVE_TRUCK_DETAIL = "CREATE TABLE " 
    + TABLE_TRUCK_DETAIL_SLAVE_DATA+ " (" 
    + KEY_ORDERID + " INTEGER," 
    + KEY_TRUCK_NUMBER + " TEXT," 
    + KEY_SUBTRUCKID_SLAVE + " TEXT,"//Define new column which would be the foreign key 
    + " FOREIGN KEY ("+KEY_SUBTRUCKID_SLAVE+") REFERENCES " 
    + TABLE_TRUCK_DETAIL_MASTER_DATA +" ("+KEY_SUBTRUCKID+"))"; 

私は間違ってあなたが追加したと思いますマスタテーブル名の代わりに、マスタテーブルの文を作成します。

@ GVillani82で指摘されているように、TABLE_TRUCK_DETAIL_SLAVE_DATAKEY_SUBTRUCKID列を参照する列を定義する必要があります。TABLE_TRUCK_DETAIL_MASTER_DATAです。

+0

これは外部キー定義(コード1)で未知の列 "id_subtruck"を投げています:、コンパイル中に:CREATE TABLE truckslave( id_order INTEGER、id_trucknmbr TEXT、FOREIGN KEY(id_subtruck)REFERENCES truckmaster(id_subtruck)) –

+0

外部キーをマッピングするために新しい列を 'TABLE_TRUCK_DETAIL_SLAVE_DATA'に追加する必要があります。私の答えは一行のコメントに注意してください。 –

+0

詳細については、[SQL外部キーチュートリアル](http://www.w3schools.com/sql/sql_foreignkey.asp)を参照してください。 –

関連する問題