如何使用Python从Sybase数据库执行SQLAlchemy中的表反射/内省?

时间:2012-03-06 22:48:30

标签: python sql sqlalchemy sybase introspection

pointed out的一些有用的stackoverflow用户neither the pyodbc nor python-sybase plugins support Sybase table reflection within SQLAlchemy

所以,我的问题是:是否存在反映Sybase部署中表的数据库元数据的替代方法?或者,如果那是不可能的,是否有一种巧妙的方法可以修补和/或破解解决方案以下拉表格元数据以进行解析和查询构建?

1 个答案:

答案 0 :(得分:5)

这一切都归结为调用数据库提供的信息模式,数据库是一组可以从中选择的表和/或视图,然后返回有关表,列和其他所有内容的数据。

对于Sybase来说,他们的信息模式有一种非常非常强硬的格式(主要是由于16 + 16 column format of representing foreign key constraints),因此当我创建Sybase方言时,我将作业的反射部分保留为一个“todo”。没有任何技术原因无法完成,这只是一项漫长而乏味的工作,我们几乎没有人使用过Sybase方言。

如果你想找出一些基本的查询来获取表名和列名,我们可以直接将它们提交到SQLAlchemy中。您将使用的架构记录在此部分中:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.tables/html/tables/tables2.htm在那里,您将看到sysobjectssyscolumnsysreferences