我有一个 Android 项目,其中包含一个用 SQLite 编写的本地数据库。存在一个 sqldelight 文件夹,其中包含数据库中每个表的 .sq 文件(User.sq、Routine.sq ...)。我能够访问/使用在我的项目中定义的表格和过程。
现在,我打算将外键关系添加到数据库中。但是,如果我尝试类似的东西 FOREIGN KEY (this_table_fk) REFERENCES OtherTable(other_table_pk)
,该项目将无法构建,因为我所在的 .sq 文件无法找到OtherTable
从 OtherTable.sq 中的语句创建的表CREATE TABLE
,或者通过扩展,它的列other_table_pk
。
如何允许 2 个不同的 .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)
);
其他表.sq:
CREATE TABLE OtherTable (
other_table_pk INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
location TEXT,
start_date TEXT,
end_date TEXT);