Tôi đã cố gắng để có được các phím nước ngoài làm việc trong cơ sở dữ liệu SQLite Android của tôi. Tôi đã thử cú pháp sau nhưng nó cho tôi một lực đóng:SQlite - Android - Cú pháp khóa ngoài
private static final String TASK_TABLE_CREATE = "create table "
+ TASK_TABLE + " (" + TASK_ID
+ " integer primary key autoincrement, " + TASK_TITLE
+ " text not null, " + TASK_NOTES + " text not null, "
+ TASK_DATE_TIME + " text not null, FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+" ("+CAT_ID+"));";
Bất kỳ ý tưởng nào tôi có thể làm sai? nếu bạn cần phải xem cấu trúc bảng khác thì tôi có thể, nó chỉ là một cấu trúc rất đơn giản cho cấu trúc thứ hai với một ID và một tên.
Edit:
Dưới đây là lỗi:
03-13 13:42:35.389: ERROR/AndroidRuntime(312): Caused by: android.database.sqlite.SQLiteException: unknown column "taskCat" in foreign key definition: create table reminders (_id integer primary key autoincrement, task_title text not null, notes text not null, reminder_date_time text not null, FOREIGN KEY (taskCat) REFERENCES category (_id));
Giải pháp này không hiệu quả đối với tôi. Các giải pháp tôi tìm thấy là để xác định tất cả trong một dòng nhưng với một cú pháp hơi khác nhau. Tôi đã làm điều này thay vì 2 dòng cuối cùng: TASK_CAT + "TÀI LIỆU THAM KHẢO" + CAT_TABLE + ");"; – HotN
@HotN, bạn là bạn thân. Giải pháp của bạn cũng làm việc cho tôi. Cảm ơn – blueware
@ jetho Tôi muốn thêm chức năng mà một khi khóa chính đã xóa tất cả các bản ghi cột của con bạn cũng sẽ bị xóa. – UnKnown