0

我已经创建了一个 Member_Master 表,其主键是 android 的 sqlite manager 中的 member_id 并在子表中创建外键,例如来自 Member_Master 的 member_id 的 Event_Master。我收到no such table found:Member_Master错误
但现在我收到以下错误:

SQLiteManager: CREATE TABLE "main"."Events_Master" ("event_id" NUMERIC PRIMARY KEY  NOT 
NULL ,"event_name" TEXT NOT NULL ,"event_details" TEXT NOT NULL ,"event_start_date" 
DATETIME NOT NULL ,"event_end_date" DATETIME NOT NULL ,"event_time" DATETIME NOT NULL 
,"event_venue" TEXT NOT NULL ,"min_level" NUMERIC,"status_id" NUMERIC,"member_id" 
NUMERIC, foriegn key(member_id) references Member_Master(member_id)ON DELETE CASCADE ON
UPDATE CASCADE) [ near "member_id": syntax error ]

Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) 
[mozIStorageConnection.createStatement]

请给我解决方案。由于Member_Master表已经创建并且member_id只有字段名称。

4

3 回答 3

4

如果你没有得到这样的表异常,原因是表没有创建。可能有几个原因,比如

1)您用来创建表的命令是错误的(也可能是打字错误)。

2 ) 您正在一个已经存在的数据库中添加一个表

Database使用特定数量的表创建时,您不能向其添加更多表。如果要添加更多表,则需要从模拟器中卸载应用程序并再次安装应用程序,然后它将通过重新创建数据库来创建新表。或者升级数据库版本,一次删除所有表,然后重新创建数据库。

于 2013-02-08T05:49:29.613 回答
1

尝试uninstalling该应用程序,reinstall然后再试一次。它在大多数情况下都有效。

于 2013-02-08T06:03:05.100 回答
0

如果你没有得到这样的表异常,那么可以确定表没有被创建。你是否在 DatabaseAdapter 类中编写了创建表查询,或者只是从 SqliteManager 添加了一个表。如果您是动态创建表,请编写 CREATE TABLE 查询并执行查询。

于 2013-02-08T05:52:29.287 回答