我试图建立一个连接3个不同表的关系数据库。主程序数据库包含供应商,这些供应商链接到每个供应商的发票,然后发票链接到在该发票中购买的项目。在
tempcur.execute("""CREATE TABLE program (
vendorid INTEGER PRIMARY KEY,
vendor TEXT,
phone TEXT,
store INTEGER)""")
tempcur.execute("""CREATE TABLE dairystore (
invoice INTEGER REFERENCES program(vendorid),
date VARCHAR)""")
tempcur.execute("""CREATE TABLE invoices(
item INTEGER REFERENCES dairystore(invoice),
shipped VARCHAR,
description TEXT,
weight INTEGER,
price INTEGER,
amount INTEGER)""")
不,您在
dairystore
表中出错。它应该是:您试图从
invoices
表引用dairystore.invoice
,因此dairystore.invoice
必须是记录的id。在您的代码中,dairystore.invoice
不能是记录的id,因为它引用了program.vendorid
,它的值将等于program
表中记录的id。在相关问题 更多 >
编程相关推荐