使用sqlalchemy时如何处理数据库表字段中的空间

时间:2018-12-14 14:53:26

标签: python sql-server sqlalchemy

我正在使用python的sqlalchemy与我的数据库进行交互。我面临的问题是在我的一张表中,一个字段的名称中有一个空格,称为“分配代码”。结果,当我应该对该字段进行更新时,由于它不是有效的类成员名,因此无法引用它。简单但不可行的方法是删除空间,但恐怕它将在更广泛的系统中引起混乱。所以我想知道是否有解决方法?我认为这里已经有几篇关于带有空格的列名的文章,但是我相信用例是不同的,因为类没有得到反映。预先感谢。

from sqlalchemy import create_engine, MetaData, Table, and_, Column, String
from urllib.parse import quote_plus
from sqlalchemy import exc
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.automap import automap_base

CONNECTION_STRING = 'REMOVED'

engine = create_engine(CONNECTION_STRING, convert_unicode=True)
metadata = MetaData(bind=engine)
Base = automap_base()
Base.prepare(engine, reflect=True)
db_session = sessionmaker(bind=engine)


table_a_record = Base.classes.TableA

def db_update_table_a(id, allocation_code):
    s = db_session()
    try:
        record_to_update = s.query(table_a_record).filter(table_a_record.Id == id).first()
        record_to_update.Allocation Code = allocation_code
        s.flush()
        s.commit()
        return True, 'Success'
    except exc.IntegrityError as e:
        s.rollback()
        logger.error('Failed to update row, exception: {}'.format(e))
        return False, 'Integrity Error'
    except Exception as e:
        s.rollback()
        logger.error('Failed to update row, exception: {}'.format(e))
        return False, 'Unknown Error'
    finally:
        s.close()

0 个答案:

没有答案