我创建了一个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
。
答案 0 :(得分:4)
如果你没有得到这样的表异常,原因是没有创建表。可能没有什么理由像
1)您用于创建表的命令是错误的(也可能是输入错误)。
2)您正在现有数据库中添加表
使用特定数量的表创建Database
时,无法向其中添加更多表。
如果要添加更多表,则需要从模拟器中卸载应用程序并再次安装应用程序,然后才能通过重新创建数据库来创建新表。
或者升级数据库版本,它应该删除所有表一次,然后重新创建数据库。
答案 1 :(得分:1)
再次尝试uninstalling
应用和reinstall
。它大部分时间都有效。
答案 2 :(得分:0)
如果你没有得到这样的表异常,那么确定没有创建表。你在DatabaseAdapter类中编写了创建表查询,或者只是从SqliteManager中添加了一个表。 如果要动态创建表,请编写CREATE TABLE查询并执行Query。