Witam, mam następującą strukturę bazy:
PRAGMA foreign_keys = OFF;
DROP TABLE a;
DROP TABLE b;
DROP TABLE c;
PRAGMA foreign_keys = ON;
CREATE TABLE a (
id INTEGER CONSTRAINT credentialstypes_pk PRIMARY KEY AUTOINCREMENT,
text VARCHAR(512) NOT NULL
);
CREATE TABLE b (
a_id INTEGER,
lp INTEGER,
text VARCHAR(512) NOT NULL,
CONSTRAINT fk_a_id FOREIGN KEY (a_id) REFERENCES a(id)
);
CREATE TABLE c (
a_id INTEGER,
b_id INTEGER,
lp INTEGER,
text VARCHAR(512) NOT NULL,
CONSTRAINT fk_aa_id FOREIGN KEY (a_id) REFERENCES b(a_id)
);
insert into a values(1,'test');
insert into b values(1,1,'test2');
insert into c values(1,1,1,'test3');
i nie działa,dostaję błąd Error: near line 31: foreign key mismatch
Problemem jest tu fk_aa_id, jak się zakomentuję tego constraint'a to jest ok, ale czemu tak się dzieje ? Potrzebuję takiej konstrukcji :/
EDIT:
Zapomniało mi się było o primary keys. w tabeli b, pole a_id musi być primary key, wtedy constraint z tabeli c jest ok :P