SQLiteLog: (1) near “manId” Syntax error while joining in tables together in android
-
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.
لا تنتمي إلى StackOverflow