引用在SQL中不起作用的外键

2024-04-19 22:03:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图引用两个独立的表来创建第三个表,但是SQL说在FOREIGN附近有一个语法错误

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)""")

Tags: keytextidexecuteifcreateexiststable
1条回答
网友
1楼 · 发布于 2024-04-19 22:03:52

FOREIGN KEY中的字段必须存在于创建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)""")

相关问题 更多 >