SQLite查询不按特定顺序执行

问题描述 投票:2回答:1

我一直试图在Android上一个接一个地执行几个SQLite查询,但是我得到了一个奇怪的错误。在将其粘贴到SQL验证器之后,我设法将假设破坏的查询做出,但随后我成功执行的查询之一非常相似。所以这是我执行它们的顺序中的查询:

   1.
   CREATE TABLE companyD (companyD_ID INTEGER PRIMARY KEY AUTOINCREMENT, 
   name TEXT)

   2.
   CREATE TABLE personD (personD_ID INTEGER PRIMARY KEY AUTOINCREMENT, 
   name TEXT, 
   age INTEGER, 
   companyD_Key INTEGER, 
   FOREIGN KEY(companyD_Key) REFERENCES companyD(companyD_ID))

   3.
   CREATE TABLE vehicleD (vehicleD_ID INTEGER PRIMARY KEY AUTOINCREMENT, 
   make TEXT, 
   model TEXT, 
   personD_Key INTEGER, 
   FOREIGN KEY(personD_Key) REFERENCES personD(personD_ID))

   4.
   CREATE TABLE addressD (addressD_ID INTEGER PRIMARY KEY AUTOINCREMENT, 
   buildingName TEXT, 
   address_1 TEXT, 
   address_2 TEXT, 
   address_3 TEXT, 
   postcode TEXT, 
   county TEXT, 
   country TEXT, 
   companyD_Key INTEGER, 
   FOREIGN KEY(companyD_Key) REFERENCES companyD(companyD_ID), 
   personD_Key INTEGER, FOREIGN KEY(personD_Key) REFERENCES personD(personD_ID))

以下是错误消息:

android.database.sqlite.SQLiteException: near "personD_Key": syntax error (code 1): , while compiling: CREATE TABLE addressD (addressD_ID INTEGER PRIMARY KEY AUTOINCREMENT, buildingName TEXT, address_1 TEXT, address_2 TEXT, address_3 TEXT, postcode TEXT, county TEXT, country TEXT, companyD_Key INTEGER, FOREIGN KEY(companyD_Key) REFERENCES companyD(companyD_ID), personD_Key INTEGER, FOREIGN KEY(personD_Key) REFERENCES personD(personD_ID))

我无法绕过我的第四个查询的错误,所以任何帮助将不胜感激,谢谢,:))

android sql database sqlite android-sqlite
1个回答
0
投票

表格约束如FOREIGN KEY(...) REFERENCES ...在列定义之后。你在两个personD_Key INTEGER表约束之间混合一个列def FOREIGN KEY

enter image description here

http://www.sqlite.org/lang_createtable.html

© www.soinside.com 2019 - 2024. All rights reserved.