Внешние ключи 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 предположил, что это было основано на порядке создания таблицы, что привело меня к правильному ответу.

Другие вопросы по тегам