首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite外键约束

SQLite外键约束
EN

Stack Overflow用户
提问于 2013-12-30 07:22:37
回答 3查看 694关注 0票数 0

在我的android项目的SqLite数据库中,我必须创建一个外键,它是表的primery键。我使用SQLiteManager.编写了下面的sql语句

代码语言:javascript
复制
 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)

);

它给了我一条错误信息,说

内部错误接近外语:语法错误。

两个表的表结构如下所示。

我该怎么解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-30 07:27:52

从代码中删除CONSTRAINT。只要做好

代码语言:javascript
复制
FOREIGN KEY (TourHeaderCode) REFERENCES OBTTourHeader(TourHeaderCode).

记住调用onCreate()onUpdate()上的表,并更新DB_version。为了安全起见,不要宣布你的FK为PK。

票数 3
EN

Stack Overflow用户

发布于 2013-12-30 07:28:16

您会得到这个错误,因为您的语法确实不正确。

阅读官方SQLite文档,了解如何使用它的更多信息。

代码语言:javascript
复制
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)
);

像这样的东西应该管用。

票数 1
EN

Stack Overflow用户

发布于 2013-12-30 07:30:22

代码语言:javascript
复制
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。遵循本文关于外键约束的内容

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20835160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档