Внешние ключи SQLite | Разные SQ файлы
У меня есть проект Android, который включает в себя локальную базу данных, написанную на SQLite. Существует папка sqldelight, которая содержит файл.sq для каждой таблицы в базе данных (User.sq, Routine.sq ...). Я могу получить доступ к / использовать таблицы и процедуры, определенные здесь в моем проекте.
Теперь я намереваюсь добавить отношения внешних ключей в базу данных. Однако, если я попробую что-то вроде FOREIGN KEY (this_table_fk) REFERENCES OtherTable(other_table_pk)
, проект не будет построен, потому что файл.sq, в котором я нахожусь, не может найти OtherTable
таблица создана из CREATE TABLE
оператор в OtherTable.sq или, соответственно, его столбец other_table_pk
,
Как я могу разрешить двум разным файлам.sq "видеть" таблицы, созданные другими?
Я пытался поставить CREATE TABLE заявления ThisTable
а также OtherTable
в том же файле.sq, но я получаю mismatched input 'CREATE' expecting (<EOF>, IDENTIFIER, JAVADOC_COMMENT)
на втором операторе CREATE TABLE. Я бы предпочел иметь решение, которое хранит каждую таблицу в своем собственном файле.sq.
Благодарю.
Базовый показ ThisTable.sq
а также OtherTable.sq
ThisTable.sq:
CREATE TABLE ThisTable (
this_table_pk INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
location TEXT,
start_date TEXT,
end_date TEXT,
this_column_fk INTEGER,
FOREIGN KEY (this_column_fk) REFERENCES OtherTable(other_column_pk)
);
OtherTable.sq:
CREATE TABLE OtherTable (
other_table_pk INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
location TEXT,
start_date TEXT,
end_date TEXT);
1 ответ
Проблема была из-за неправильного использования платформы Android Studio. Тем не менее, Parkgrrr предположил, что это было основано на порядке создания таблицы, что привело меня к правильному ответу.