String Post_Code = "CREATE TABLE IF NOT EXISTS PostCode(" + "PostCode_ID integer PRIMARY KEY, " + "Code string NOT NULL, " + "City_ID integer," + "FOREIGN KEY (City_ID)" + "REFERENCES City (City_ID)" + "ON UPDATE CASCADE " + "ON DELETE SET NULL, " + "County_ID integer," + "FOREIGN KEY (County_ID)" + "REFERENCES County (County_ID)" + "ON UPDATE CASCADE " + "ON DELETE SET NULL" + ");";
I believe it’s most likely to be something within the first foreign key reference.
Advertisement
Answer
Either move all the FOREIGN KEY
definitions at the end of the statement:
CREATE TABLE IF NOT EXISTS PostCode( PostCode_ID integer PRIMARY KEY, Code TEXT NOT NULL, City_ID integer, County_ID integer, FOREIGN KEY (City_ID) REFERENCES City (City_ID) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY (County_ID)REFERENCES County (County_ID) ON UPDATE CASCADE ON DELETE SET NULL );
or, define each foreign key right after the definition of each column without the FOREIGN KEY
keywords:
CREATE TABLE IF NOT EXISTS PostCode( PostCode_ID integer PRIMARY KEY, Code TEXT NOT NULL, City_ID integer REFERENCES City (City_ID) ON UPDATE CASCADE ON DELETE SET NULL, County_ID integer REFERENCES County (County_ID) ON UPDATE CASCADE ON DELETE SET NULL );
See the demo.
Note that there is no string
data type in SQLite.
I changed it to TEXT
.