使用SQLAlchemy更新行时如何解决Object不存在异常?

如何解决使用SQLAlchemy更新行时如何解决Object不存在异常?

当我第一次搜索该异常时,有多个名称object doesnot exist的异常,但是它们都与数据库中使用的表无关。我需要根据两列design_id和step_name的where条件更新几列,应该更新列time_logged and eoh_buffer_factor。我正在使用Flask-RestFul API提交整个内容

我有一个Model对象,其中包含使用的表的列。 model_buffer_input_eoh.py文件

import sqlalchemy as sa
from sqlalchemy import Float,DateTime,String,Integer
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class BufferInputEoh(Base):
    __tablename__ = 'BUFFER_INPUT_EOH_TEST'
    __table_args__ = {'quote': False,'extend_existing': True}
    id = sa.Column(Integer,primary_key=True)
    eoh_buffer_factor = sa.Column(Float)
    time_logged = sa.Column(DateTime)
    mfg_facility_id = sa.Column(String)
    design_id = sa.Column(String)
    step_name = sa.Column(String)

    def __init__(self,eoh_buffer_factor,time_logged,mfg_facility_id,design_id,step_name):
        self.eoh_buffer_factor = eoh_buffer_factor
        self.time_logged = time_logged
        self.mfg_facility_id = mfg_facility_id
        self.design_id = design_id
        self.step_name = step_name

    def json(self):
        return {'Updated record': '{},{},{}'.format(self.eoh_buffer_factor,self.time_logged,self.design_id,self.mfg_facility_id,self.step_name)}

我的API类:

从models.model_buffer_input_eoh导入BufferInputEoh

class UpdEohInputCapacity(Resource):

    @classmethod
    def post(self):
        try:
            engine = datasource.lookup('Fab_16')
            connection = engine.connect()
            Session = sessionmaker()
            Session.configure(bind=engine)
            session = Session()
            dbname = datasource.get_db_name(data['fab'],'test')
            row = session.query(BufferInputEoh).filter(row_data.design_id == DESIGN_ID).filter(row_data.step_name == STEP_NAME).first()
            row.time_logged = TIME_LOGGED
            row.eoh_buffer_factor = EOH_BUFFER_FACTOR
            session.commit()
            connection.close()
        except Exception as e:
            return {'message': 'Proc execution Failed with error => {error}'.format(error=e)},201
        pass

我在数据库中有该表,并且试图与之运行查询用户具有各种访问权限。但是,当我提交代码时,它将以Object 'BUFFER_INPUT_EOH_TEST' does not exist

结尾

完全例外:

(sNowflake.connector.errors.ProgrammingError) 002003 (42S02): 0196c513-05a1-8f94-0037-dd0286a14457: sql compilation error:\nObject 'BUFFER_INPUT_EOH_TEST' does not exist or not authorized.\n[sql: SELECT BUFFER_INPUT_EOH_TEST.id AS BUFFER_INPUT_EOH_TEST_id,BUFFER_INPUT_EOH_TEST.eoh_buffer_factor AS BUFFER_INPUT_EOH_TEST_eoh_buffer_factor,BUFFER_INPUT_EOH_TEST.time_logged AS BUFFER_INPUT_EOH_TEST_time_logged,BUFFER_INPUT_EOH_TEST.mfg_facility_id AS BUFFER_INPUT_EOH_TEST_mfg_facility_id,BUFFER_INPUT_EOH_TEST.design_id AS BUFFER_INPUT_EOH_TEST_design_id,BUFFER_INPUT_EOH_TEST.step_name AS BUFFER_INPUT_EOH_TEST_step_name \nFROM BUFFER_INPUT_EOH_TEST \nWHERE true\n LIMIT %(param_1)s]\n[parameters: {'param_1': 1}]\n(Background on this error at: http://sqlalche.me/e/13/f405)

我能够理解是什么导致了异常,因为表,数据库,访问都在那儿,但我仍然看到找不到与所用表有关的对象异常。 任何人都可以让我知道如何解决代码中的错误,以避免上面看到的异常吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?