Создание таблицы базы данных SQLite с использованием внешних ключей? - PullRequest
1 голос
/ 19 марта 2020

получение ошибок, таких как неизвестный столбец «TitleID» в определении внешнего ключа

    database.execSQL("create table " + TABLE_NAME +
            " (TitleID INTEGER PRIMARY KEY AUTOINCREMENT, " +
            C_TITLE_NAME + " text) ");

    database.execSQL("create table " + TABLE_ITEM +
            " (ItemID INTEGER PRIMARY KEY AUTOINCREMENT, " +
            C_ITEM_NAME + " text, " +
            " FOREIGN KEY (TitleID) REFERENCES " + TABLE_NAME + "(ID)) ");

1 Ответ

1 голос
/ 19 марта 2020

Я думаю, что вы пытаетесь сослаться на столбец с именем ID, которого просто нет в первой таблице. сначала вам нужно создать столбец, соответствующий TitleID во второй таблице (я просто назвал его «TitleID_ref»), а затем вам нужно правильно сослаться на него в последней строке кода.

попробуйте

 database.execSQL("create table " + TABLE_NAME +
        " (TitleID INTEGER PRIMARY KEY AUTOINCREMENT, " +
        C_TITLE_NAME + " text) ");

database.execSQL("create table " + TABLE_ITEM +
        " (ItemID INTEGER PRIMARY KEY AUTOINCREMENT, " +
        C_ITEM_NAME + " text, " +
        "TitleID_ref INTEGER,"+
        " FOREIGN KEY (TitleID_ref) REFERENCES " + TABLE_NAME + "(TitleID )) ");

здесь вы получите официальную документацию по этому вопросу для sqlite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...