【发布时间】:2014-01-21 08:31:12
【问题描述】:
在我的 SQLite 数据库中,我创建了如下三个表。
CREATE TABLE OBTTourHeader
(
TourHeaderCode INT PRIMARY KEY NOT NULL,
VehicleCode VARCHAR(10) NOT NULL,
LastMilage DOUBLE,
TourReference VARCHAR(20) NOT NULL,
TourFromDate TEXT NOT NULL,
TourToDate TEXT NOT NULL,
TourAssignTo VARCHAR(30) ,
DriverNmae VARCHAR(30) ,
AssistantName VARCHAR(30) ,
Porter1Name VARCHAR(30) ,
Porter2Name VARCHAR(30) ,
Porter3Name VARCHAR(30) ,
RouteCode INT,
Active CHAR(1) NOT NULL,
CreatedOn TEXT ,
CreatedBy CHAR(10),
UpdateOn TEXT,
Updateby CHAR(10)
);
CREATE TABLE OBTTourDetails
(
TourHeaderCode INT NOT NULL,
TourdetailCode INT NOT NULL,
VisitSequence INT NOT NULL,
LocationNmae VARCHAR(30) NOT NULL,
CityName VARCHAR(30) NOT NULL,
Type CHAR(1) NOT NULL,
Status CHAR(1) NOT NULL,
TypeColor CHAR(20) ,
statusColor CHAR(20) ,
Active CHAR(1) NOT NULL,
CreatedOn TEXT ,
CreatedBy CHAR(10),
UpdateOn TEXT,
Updateby CHAR(10),
FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode),
PRIMARY KEY (TourHeaderCode , TourdetailCode)
);
CREATE TABLE OBTTourDropPickItems
(
TourHeaderCode INT NOT NULL,
TourdetailCode INT NOT NULL,
DropPickupItemCode INT NOT NULL,
Status CHAR(1) NOT NULL,
CreatedOn TEXT ,
CreatedBy CHAR(10),
UpdateOn TEXT,
Updateby CHAR(10),
FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode),
FOREIGN KEY (TourdetailCode) REFERENCES OBTTourDetails(TourdetailCode),
PRIMARY KEY (TourHeaderCode, TourdetailCode, DropPickupItemCode)
);
我尝试使用以下语句输入记录:
INSERT INTO OBTTourDropPickItems (TourHeaderCode, TourdetailCode, DropPickupItemCode, Status, CreatedOn, CreatedBy)
VALUES ('1','1','1','1','21/01/2013','samantha');
它给了我一个错误“外键不匹配”:
我无法找出错误。 OBTTourDetails 表和 OBTTourHeader 表都包含记录。这里出了什么问题?对我来说应该没问题。
【问题讨论】: