java - 如何在android studio中使用sqlite获得多个外键的良好语法

标签 java android sqlite foreign-keys android-sqlite

我尝试使用 android studio 将 2 个外键放入 sqlite,但出现以下错误:

多个外键错误

enter image description here 然而,当我只获得 1 个外键时,它对我有用,如下所示:

   @Override
public void onCreate(SQLiteDatabase db) {
    String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " ("
            + RENDEZ_VOUS_ID  + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + DATE + " DATE, "
            + TIME + " TIME, "
            + STATUS + " INTEGER, "
            + COMMENT + " TEXT, "
            + CONTACT_ID + " INTEGER, FOREIGN KEY("+CONTACT_ID+") REFERENCES "+DatabaseManagerContact.TABLE_NAME+"("+CONTACT_ID+"));";

    db.execSQL(TABLE_CREATE);
    Log.i("DATABASE Rendez Vous", "onCreate invoked ");
}

你知道问题出在哪里吗?

问候

最佳答案

在语句末尾声明所有外键,如下所示:

String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " ("
        + RENDEZ_VOUS_ID  + " INTEGER PRIMARY KEY AUTOINCREMENT, "
        + DATE + " DATE, "
        + TIME + " TIME, "
        + STATUS + " INTEGER, "
        + COMMENT + " TEXT, "
        + CONTACT_ID + " INTEGER, "
        + OTHER_ID +  " INTEGER, "
        + FOREIGN KEY("+CONTACT_ID+") REFERENCES "+DatabaseManagerContact.TABLE_NAME+"("+CONTACT_ID+"), "
        + FOREIGN KEY("+OTHER_ID+") REFERENCES "+DatabaseManagerContact.ANOTHER_TABLE_NAME+"("+ANOTHER_ID+"));";

关于java - 如何在android studio中使用sqlite获得多个外键的良好语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558515/

相关文章:

java - Empire db code-gen 从表元数据读取 "0.-127"时双重解析失败

android - 如何正确触发 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Intent ?

java - panoramagl 热点将移至下一个全景

android - Kotlin 中的字符串到位图

java - HBox for JavaFX 内部元素的布局

java - 如何在 Executor 中调度 Callable

java - Android Firebase 时间戳

android - 如何替换(覆盖整个文件)SQLiteAssetHelper 提供的 sqlite 数据库?

android - 在 sqlite3 数据库中插入 1000000 行

sqlite - 在具有多个结果的 SQLite 的 DB Browser 中运行多个 SELECT