1

主キーではなく、外部キーのみを持つテーブルを作成しようとしています。このエラーが発生しています:

java.lang.IllegalArgumentException: column '_id' does not exist

主キーは_idでなければならないというチュートリアルを読みましたが、説明はありません。そして、それは結構です。しかし、主キーが必要ない場合はどうすればよいでしょうか! 外部キーのみが必要な場合はどうなりますか。これが私の問題があるところだと思います。以下のスキーマは私が持っているものです。しかし、3つ目は、これがどこから来ていると私が推測するかです。

database.execSQL("CREATE TABLE events (" +
            "_id INTEGER PRIMARY KEY, event_name TEXT" +
            ")");

database.execSQL("CREATE TABLE reminders(_id INTEGER PRIMARY KEY, event_name TEXT" +
            ")");

database.execSQL("CREATE TABLE events_info (_id INTEGER, event_name TEXT, all_day INTEGER, " +
                    "start_date INTEGER, start_time INTEGER, end_date INTEGER, end_time INTEGER," +
                    " location TEXT, reminder_id INTEGER, notes TEXT, repeat TEXT," +
                    "FOREIGN KEY(_id) REFERENCES events(_id), FOREIGN KEY(reminder_id) REFERENCES reminders(_id))"
                    );
4

2 に答える 2

2

を使用していCursorAdapterますか? そうである場合、CursorAdapterクラスには名前付きの列が必要であり、_idそうでない場合、クラスは機能しません。一般に、データを1 つまたはそのサブクラスの 1 つ_idにバインドする場合に備えて、データベース テーブルにこのような名前の列を含めることをお勧めします。CursorAdapter

于 2012-06-03T03:45:35.627 に答える
0

問題が見つかりました:

あなたのテーブルは ですが、 ...eventsを使用して外部キーを参照しようとしていますevent

REFERENCES event(_id)

する必要があります

REFERENCES events(_id)
于 2012-06-03T04:25:43.853 に答える