我正在编写一个python程序来读取需要满足的列的名称和类型。你知道吗
我想这样放置结果:
id_index=Column(int)
使用打印
print "{0}{1}=Column({2})".format(" "*5,SysColumns.name,SysTypes.xtype)
我将使用三个表:SysColumns
、SysObjects
和SysTypes
:
class SysColumns(BaseModel):
__tablename__ = "SysColumns"
name=Column(String,primary_key=True)
colorder=Column(Integer,primary_key=True)
id=Column(Integer,primary_key=True)
xtype = Column(String, primary_key=True)
class SysObjects(BaseModel):
__tablename__ = "SysObjects"
name=Column(String)
id=Column(Integer,primary_key=True)
xtype=Column(String,primary_key=True)
class SysTypes(BaseModel):
__tablename__ = "SysTypes"
name = Column(String, primary_key=True)
xtype = Column(String)
SysColumns
在SysObjects
中具有相同的列id
,而SysTypes
在SysColumns
中具有相同的列xtype
。你知道吗
原始代码如下:
def dispMod(session,tableName):
result=session.query(SysColumns). \
join(SysObjects,SysColumns.id==SysObjects.id).\
filter(SysObjects.xtype=='u').\
filter(SysObjects.name==tableName).\
order_by(SysColumns.colorder)
for sysColumns in result:
print "{0}{1}=Column({2})".format(" "*5,SysColumns.name,SysColumns.xtype)
结果可以显示为:
id_index=Column(56)
现在我需要在SysTypes
中搜索数字56,将其改为它所代表的类型。你知道吗
SysTypes
有SysTypes.xtype
和SysTypes.name
列。
我想让它显示名称而不是xtype
:
print "{0}{1}=Column({2})".format(" "*5,SysColumns.name,Systypes.name)
我不知道如何使用上面的结果加入Systypes表来查找其中的名称。你知道吗
我可以编写查询来搜索SysColumns.name
和SysTypes.name
一次吗?你知道吗
只需在另一个连接之后添加连接并仅选择名称:
相关问题 更多 >
编程相关推荐