这是我的SQLite表结构
CREATE TABLE tbl_district (
districtId INTEGER PRIMARY KEY not null,
districtName TEXT unique NOT NULL
);
CREATE TABLE tbl_route (
routeId INTEGER,
districtId INTEGER NOT NULL REFERENCES tbl_district (districtId) ON DELETE CASCADE ON UPDATE CASCADE,
routeName TEXT NOT NULL,
primary key (routeId , districtId)
);
CREATE TABLE tbl_city (
cityId INTEGER PRIMARY KEY,
routeId INTEGER NOT NULL REFERENCES tbl_route (routeId) ON DELETE CASCADE ON UPDATE CASCADE,
cityName TEXT NOT NULL
);
如果我执行
insert into tbl_district ( districtId, districtName) values (1,'Sri Lanka')
它应该工作
但是如果我执行
replace into tbl_district ( districtId, districtName) values (1,'Sri Lanka')
它给出以下错误
Error while executing query: foreign key mismatch - "tbl_city" referencing "tbl_route"
有解决的办法吗?
提前致谢!
该文件说
父键列必须共同受到UNIQUE约束或具有UNIQUE索引。
该routeId
列是中的外键的父键tbl_city
,但没有UNIQUE约束。
(您的REPLACE语句与此没有直接关系;它只是在数据库偶然发现该错误的时候。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句