我在Sybase数据库上有sqlalchemy ORM映射。我的一些表名相当长,我收到以下错误:
DBAPIError: (Error) ('HY000', "[HY000] [DataDirect][ODBC Sybase Wire Protocol driver]
[SQL Server]The column heading that starts with 'RISK_AGGREGATION_GROUP_id_risk_agg' is
too long. Maximum length is 30.
我有什么方法可以:
a)'别名'sqlalchemy中的表,以便它使用较短的列别名
b)增加30个字符的限制
我意识到我可以在数据库中创建视图但不想触摸它。
感谢
答案 0 :(得分:1)
SQLAlchemy通常会自动设置相应的标签长度,对于Sybase,我们从未得到任何关于此方言的反馈,因此我们没有插入per-sybase默认值,但可以通过label_length进行配置:
engine = create_engine("sybase+pyodbc://...", label_length=30)
答案 1 :(得分:0)
我可以回答有关b)部分的内容。 在sybase中,您无法增加字符限制!
关于a)我不知道这是否可行,但我的消息是你改变表名!