我正在使用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()