在我的 android 项目的 SqLite 数据库中,我必须创建一个外键,这是主键桌子。我使用 SQLiteManager 编写了如下sql语句。
CREATE TABLE OBTTourVehicleUpdate
(
TourHeaderCode INT PRIMARY KEY NOT NULL,
TourVehicleProcessCode INT NOT NULL,
VehicleCode CHAR(10),
TourStart TEXT ,
TourEnd TEXT ,
LastMilage DOUBLE,
NewMilage DOUBLE,
CONSTRAINT FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode)
);
它给出了一条错误消息,说明
内部错误。靠近FOREIGN:语法错误。
两个表的表结构如下所示。 我怎样才能解决这个问题。
答案 0 :(得分:3)
从代码中删除CONSTRAINT
。只需做
FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode).
请务必致电onCreate()
和onUpdate()
上的表格,并更新DB_version
。为了安全起见,不要将你的FK宣布为PK。
答案 1 :(得分:1)
您收到该错误,因为您的语法确实不正确。
阅读official SQLite documentation以了解有关如何使用它的更多信息。
CREATE TABLE OBTTourVehicleUpdate
(
TourHeaderCode INT PRIMARY KEY NOT NULL,
TourVehicleProcessCode INT NOT NULL,
VehicleCode CHAR(10),
TourStart TEXT ,
TourEnd TEXT ,
LastMilage DOUBLE,
NewMilage DOUBLE,
FOREIGN KEY(TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode)
);
这样的事情应该有用。
答案 2 :(得分:1)
CREATE TABLE OBTTourVehicleUpdate
(
TourHeaderCode INT PRIMARY KEY NOT NULL,
TourVehicleProcessCode INT NOT NULL,
VehicleCode CHAR(10),
TourStart TEXT ,
TourEnd TEXT ,
LastMilage DOUBLE,
NewMilage DOUBLE,
FOREIGN KEY(TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode)
);
您不需要在查询中使用CONSTRAINT
。请按照有关Foreign Key Constraints