2017-04-04 26 views
0

我有一個Android項目,包括用SQLite編寫的本地數據庫。存在一個sqldelight文件夾,其中包含數據庫中每個表的.sq文件(User.sq,Routine.sq ...)。我能夠訪問/使用我的項目中定義的表格和程序。現在SQLite外鍵|不同的SQ文件

,我的意圖外鍵關係添加到數據庫中。不過,如果我嘗試像FOREIGN KEY (this_table_fk) REFERENCES OtherTable(other_table_pk),該項目將不建,因爲.sq文件我在無法找到在OtherTable.sq的CREATE TABLE陳述或者通過擴展創建的OtherTable表,其列other_table_pk

我怎樣才能讓2個不同的.sq文件「看到」由其他產生的表?

我試着把ThisTableOtherTable的CREATE TABLE語句放在同一個.sq文件中,但是我在第二個CREATE TABLE語句上得到mismatched input 'CREATE' expecting (<EOF>, IDENTIFIER, JAVADOC_COMMENT)。儘管如此,我寧願有一個解決方案將每張表保存在自己的.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); 
+0

你能後的.sq文件你在說什麼?沒有看到更多的代碼很難提供幫助。 – parkgrrr

+0

是的,我會編輯OP。我並沒有試圖用我所做的或任何事情來賺錢,但我傾向於認爲抽象具體實現是一個很好的原則。等一下。 –

+0

它完成了,由。 –

回答

0

的問題是,由於Android的播控平臺的濫用。然而,parkgrrr猜測它是基於表格創建的順序,這使我得到了正確的答案。