Sqlite 3多个外键

2024-10-03 11:23:16 发布

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

我正在做A2课程作业,遇到了多个外键的问题。这里是我认为相关的所有代码,如果你需要更多的话,请这样回复。在

在TeacherInfo中:

def TMenu():
print()
MenuPupil = menuClass.Menu("Teacher")
MenuPupil.printMenu()
Choice = int(input("Enter your choice: "))
if Choice == 1:
    db_name = "PupilPremiumTableNew.db"
    sql= """Create table TeacherInfo
        (TeacherID int,
        TeacherInitials text,
        TeacherYearTeaching int,
        primary key(TeacherID))"""
    CreateTeachersTable(db_name, "TeacherInfo",sql)

在PupilPremiumTableNew中:

^{pr2}$

我得到的错误是:sqlite3.OperationalError: unknown column "TeacherID" in foreign key definition

正如您可能注意到来自另一个文件的外键,PupilTable就在其中。在一个有效的时刻,如果我删除TeacherID作为外键,它就可以工作了

谢谢 设备77


Tags: key代码namea2dbsql作业外键
1条回答
网友
1楼 · 发布于 2024-10-03 11:23:16

我忘了告诉它TeacherID是什么,所以为了解决这个问题,我在变量sql中添加了TeacherID int 现在的情况如下:

        db_name = "PupilPremiumTableNew.db"
    sql= """Create table PupilPremiumTableNew
           (PupilID int,
            WritingGrade text,
            ReadingGrade text,
            MathsGrade text,
            Term text,
            RecordID int,
            InterventionsReading text,
            InterventionsWriting text,
            InterventionsMaths text,
            TeacherID int,
            primary key(RecordID),
            foreign key(PupilID)
            references PupilInfo(PupilID)

            foreign key(TeacherID)
            references TeacherInfo (TeacherID)
            on update cascade on delete cascade)"""
    CreatePupilPremiumTable(db_name, "PupilPremiumTableNew",sql)

相关问题 更多 >