0

我有一个 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.sqOtherTable.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);
4

1 回答 1

0

问题是由于滥用了 Android Studio 平台。但是,parkgrrr 推测它是基于创建表的顺序,这使我得到了正确的答案。

于 2017-04-04T06:20:36.740 回答