2015-11-21 37 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

谢谢!!!这真的有帮助 –