SQLiteLog: (1) near “manId” Syntax error while joining in tables together in android

StackOverflow https://stackoverflow.com//questions/24034672

  •  21-12-2019
  •  | 
  •  

سؤال

I am joining three tables MANUFACTURERS_TABLE, TBL_JOB_ADDRESS, TBL_APPLIANCES whereas creating two foreign keys in TBL_APPLIANCES getting an error as stated in the title of the question. Having looked at the previous questions & answer, I'm not making the mistakes outlined in those questions.

Manufacturers Table

//columsn for manufacturer table
public static final String KEY_MANROWID = "manId";   // error-some
public static final String KEY_MANFACTURERNAME = "manufacturer_name";

JobAddress table

//columsn for job address table
public static final String KEY_JOB_ADDRESSROWID = "_id";
public static final String KEY_ADDRESSOFPLACE = "address_of_place";

Appliances Table

public static final String KEY_APPLIANCES_ROWID = "appliances_id";
public static final String KEY_APPLIANCES_MANIFACTURERS_ID = "appliance_manufacturers_id";

public static final String KEY_APPLIANCES_MODEL = "appliances_model";
public static final String KEY_APPLIANCES_TYPE = "appliances_type";
public static final String KEY_APPLIANCES_SERIAL = "appliances_serial";
public static final String KEY_APPLIANCES_SERVICE_INTERVAL=  
    "appliances_service_interval";
public static final String KEY_APPLIANCES_JOB_ADDRESS_ID =    
    "appliances_jobaddress_id";
public static final String KEY_APPLIANCES_ENGINEERS_ID = "appliances_engineers_id";
public static final String KEY_APPLIANCES_DATE = "appliances_date";

Creating appliances table with both forieng keys

// appliance table referencing manufacturers & job adress table
        db.execSQL("CREATE TABLE " + TBL_APPLIANCES + " (" 
                    + KEY_APPLIANCES_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + KEY_APPLIANCES_MODEL + " TEXT NOT NULL, "
                    + KEY_APPLIANCES_TYPE + " TEXT NOT NULL, "
                    + KEY_APPLIANCES_SERIAL + " TEXT NOT NULL, "
                    + KEY_APPLIANCES_SERVICE_INTERVAL + " TEXT NOT NULL, " 
                    + KEY_APPLIANCES_DATE + " TEXT NOT NULL, "
                    + KEY_JOB_ADDRESSROWID + " INTEGER, "
                    + " FOREIGN KEY ("+KEY_APPLIANCES_JOB_ADDRESS_ID+") REFERENCES "+TBL_JOB_ADDRESS+" ("+KEY_JOB_ADDRESSROWID+") "
                    + KEY_MANROWID + " INTEGER, "
                    + " FOREIGN KEY ("+KEY_APPLIANCES_MANIFACTURERS_ID+") REFERENCES "+MANUFACTURERS_TABLE+" ( "+KEY_MANROWID+" ));"
                );
هل كانت مفيدة؟

المحلول

Table constraints such as FOREIGN KEY must come after column specifications.

Move the

+ KEY_MANROWID + " INTEGER, "

above the FOREIGN KEY constraints.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top