0
我已經找了答案,但也許我想念一些東西。 我有2個表格見下文。第一個表中的實體是從第二個表中引用的,但是當我嘗試從第二個表中刪除時,我獲得了Error: foreign key mismatch
。有觸發器(不在這裏顯示),但它們與DELETE
或cmdauth
無關。我不明白爲什麼不能刪除行?爲什麼不能從表格中刪除參考另一個
CREATE TABLE app (name TEXT, script TEXT, PRIMARY KEY(name));
CREATE TABLE env (name TEXT, PRIMARY KEY(name));
CREATE TABLE role (name TEXT, command TEXT, PRIMARY KEY(name,command));
CREATE TABLE cmdauth (groupname TEXT, rolename TEXT, appname TEXT, envname TEXT, FOREIGN KEY (appname) REFERENCES app(name), FOREIGN KEY (rolename) REFERENCES role(name), FOREIGN KEY (envname) REFERENCES env(name), PRIMARY KEY (groupname,rolename,appname,envname));
sqlite> select * from cmdauth where appname='app1' and groupname='admin' and envname='test' and rolename='restarter';
admin|restarter|app1|test
sqlite> delete from cmdauth where appname='app1' and groupname='admin' and envname='test' and rolename='restarter';
Error: foreign key mismatch
謝謝你的幫忙!
謝謝,這是我的錯。我想知道如何將數據插入到'cmdauth'中......也許我沒有用戶'foreign_keys = ON'編譯指示。 –