2015-11-21 77 views
0

不工作我想引用兩個單獨的表創建第三個表,但是SQL說,有在FOREIGN KEY近洋引用外鍵在SQL

import sqlite3 as db 
connection = db.connect("doctor_who_database") 

cursor = connection.cursor() 

cursor.execute("""CREATE TABLE IF NOT EXISTS doctor_who_database(
item_id TEXT PRIMARY KEY, 
item TEXT)""") 

cursor.execute("""CREATE TABLE IF NOT EXISTS doctor_who_database2(
person_id TEXT PRIMARY KEY, 
season TEXT, 
person TEXT)""") 



cursor.execute("""CREATE TABLE IF NOT EXISTS doctor_who_database3(
id TEXT PRIMARY KEY, 
item TEXT, 
season TEXT, 
person TEXT)""") 

cursor.execute("""FOREIGN KEY(item_id) REFERENCES doctor_who_database(item_id)""") 
+0

我看不出有任何語法錯誤。 ..也許你忘了在你的問題中包含回溯..? – thebjorn

回答

2

領域的語法錯誤必須出現在該FK是在,item_id創建的表不是doctor_who_database3領域,也FOREIGN KEY本身並不是一個命令,應該放在CREATE TABLE,例如

cursor.execute("""CREATE TABLE IF NOT EXISTS doctor_who_database3(
id TEXT PRIMARY KEY, 
item TEXT, 
season TEXT, 
person TEXT, 
FOREIGN KEY(id) REFERENCES doctor_who_database(item_id)""") 
+0

謝謝!!!這真的有幫助 –