我是否正确地设置了这个关系数据库(python,sqlite3)

2024-09-28 23:51:51 发布

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

我试图建立一个连接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)""")

Tags: textexecute链接createtable发票invoiceinteger
1条回答
网友
1楼 · 发布于 2024-09-28 23:51:51

不,您在dairystore表中出错。它应该是:

CREATE TABLE dairystore (
  invoice INTEGER  PRIMARY KEY,
  vendor INTEGER REFERENCES program(vendorid), 
  date VARCHAR
)

您试图从invoices表引用dairystore.invoice,因此dairystore.invoice必须是记录的id。在您的代码中,dairystore.invoice不能是记录的id,因为它引用了program.vendorid,它的值将等于program表中记录的id。在

相关问题 更多 >