【问题标题】:sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was requiredsqlalchemy.exc.MultipleResultsFound:当恰好需要一个时找到了多行
【发布时间】:2021-07-26 15:32:21
【问题描述】:

我在数据库中有这样的结构

tasks_exams = db.Table('tasks_exams',
    db.Column('task_id', db.Integer, db.ForeignKey('tasks.id')),
    db.Column('exam_id',  db.Integer, db.ForeignKey('exams.id'))
)

class Tasks(db.Model):
    __tablename__ = 'tasks'

    id        = db.Column(db.Integer, primary_key=True, autoincrement=True)
    task      = db.Column(db.Text)


class Exams(db.Model):
    __tablename__ = 'exams'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name_of_Exam = db.Column(db.String(140))
    number_of_exam_task = db.Column(db.SmallInteger)
    name_of_exams_task = db.Column(db.String(140))

    tasks = db.relationship('Tasks',
                            secondary=tasks_exams,
                            back_populates="exams")

我想获取exams_1 所在的所有任务:

tasku = Exams.query.filter(Exams.name_of_Exam == "exams_1").scalar()

我得到一个错误:

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

我应该如何解决我的问题?

【问题讨论】:

    标签: python sql flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    来自 sqlalchemy documentaion


    你可以使用 .all()

    【讨论】:

      【解决方案2】:
      tasku = Tasks.query.filter(Exams.name_of_Exam =="ЕГЭ").all()
      

      【讨论】:

        猜你喜欢
        • 2023-01-31
        • 1970-01-01
        • 2016-12-10
        • 2017-01-25
        • 1970-01-01
        • 1970-01-01
        • 2018-04-27
        • 2013-07-29
        • 2018-02-22
        相关资源
        最近更新 更多