在我的android项目的SqLite数据库中,我必须创建一个外键,它是表的primery键。我使用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)
);它给了我一条错误信息,说
内部错误接近外语:语法错误。
两个表的表结构如下所示。

我该怎么解决这个问题。
发布于 2013-12-30 07:27:52
从代码中删除CONSTRAINT。只要做好
FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode).记住调用onCreate()和onUpdate()上的表,并更新DB_version。为了安全起见,不要宣布你的FK为PK。
发布于 2013-12-30 07:28:16
您会得到这个错误,因为您的语法确实不正确。
阅读官方SQLite文档,了解如何使用它的更多信息。
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)
);像这样的东西应该管用。
发布于 2013-12-30 07:30:22
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。遵循本文关于外键约束的内容
https://stackoverflow.com/questions/20835160
复制相似问题