I'm getting a "foreign key mismatch" error with the following code:
~~~
<create new database>
PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS JobPlans (Name UNIQUE);
CREATE TABLE IF NOT EXISTS Tasks (JobPlan_ID INTEGER NOT NULL REFERENCES
JobPlans(RowID) ON DELETE CASCADE, UID UNIQUE NOT NULL);
INSERT INTO JobPlans(Name) VALUES ('234234');
# Following line generates the error:
INSERT INTO Tasks(JobPlan_ID,UID) VALUES (1,'ZZZ');
~~~
If I explicitly declare an alias for the RowID:
CREATE TABLE IF NOT EXISTS JobPlans (RowID INTEGER PRIMARY KEY, Name UNIQUE);
I don't get the error. Is it not possible to reference the SQLite
internal/default column for the RowID in a foreign key definition? The online
docs should be updated to reflect this.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users