0

Androidのsqliteマネージャーで主キーがmember_idであるMember_Masterテーブルを1つ作成し、子テーブルに外部キーを作成しました。たとえば、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 クラスに create Table クエリを記述したか、単に SqliteManager からテーブルを追加しましたか。動的にテーブルを作成する場合は、CREATE TABLE クエリを記述し、Query を実行してください。

于 2013-02-08T05:52:29.287 に答える