0

我正在我的 android 应用程序中创建表格。我希望在删除交货单记录时删除此照片表的记录。

此 SQL 运行,但不包含约束:

照片表:

CREATE TABLE photos ( 
_id INTEGER PRIMARY KEY, 
orderid INTEGER , 
uri TEXT , 
datetime TEXT , 
lattitude REAL , 
longitude REAL , 
FOREIGN KEY ( orderid )  
REFERENCES deliveryorder ( _id ) )

但是当我添加约束时,我得到一个语法错误“靠近 CASCADE”

照片表:

CREATE TABLE photos ( 
_id INTEGER PRIMARY KEY, 
orderid INTEGER ,
uri TEXT ,
datetime TEXT , 
lattitude REAL ,
longitude REAL ,
FOREIGN KEY ( orderid )  REFERENCES deliveryorder ( _id )  ON DELETE CASCASDE  )

这是错误消息:

    06-10 11:09:55.944: E/AndroidRuntime(26269): java.lang.RuntimeException: 
Unable to start activity
ComponentInfo{com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity}:
android.database.sqlite.SQLiteException: near "CASCASDE":
syntax error (code 1): , while compiling:
CREATE TABLE photos ( _id INTEGER PRIMARY KEY, orderid INTEGER , uri TEXT , datetime TEXT , lattitude REAL , longitude REAL , FOREIGN KEY ( orderid )  REFERENCES deliveryorder ( _id )  ON DELETE CASCASDE  )

我已经搜索了一堆似乎相关的答案,但我找不到解决这个特定问题的答案。我知道这可能很容易,但我没有太多的 SQL 经验。

  • 我正在使用编译指示打开外键。我在 onCreate 和 onOpen 中都使用了编译指示。

  • 数据库版本是 Gingerbread 自带的,所以应该都支持。

显然,我在做一些愚蠢的事情,但无法弄清楚。

在此先感谢您的帮助。

4

1 回答 1

2

你拼错了CASCASDE。试试CASCADE。它应该工作得更好。

于 2013-06-10T15:41:01.213 回答