首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL炼金术检查模块给出小写的表名

SQL炼金术检查模块给出小写的表名
EN

Stack Overflow用户
提问于 2022-03-23 19:27:29
回答 2查看 217关注 0票数 0

下面是如何使用sql炼金术获取架构的表名

代码语言:javascript
复制
from sqlalchemy import inspect
inspector = inspect(engine)

table_list = inspector.get_table_names(schema="PUBLIC")

这给出了用小写表示的表名,但实际上,表在数据库中存在大写大小写,因此我希望得到与数据库/模式中存在的表名相同的表名。

注:使用雪花数据库的

EN

回答 2

Stack Overflow用户

发布于 2022-03-23 19:47:05

SQLAlchemy是否进行"case规范化“取决于方言,因为规范化对某些数据库是方便的,而对另一些数据库则是一种麻烦。

例如,mssql+pyodbc://方言不强制表名小写:

代码语言:javascript
复制
with engine.begin() as conn:
    conn.exec_driver_sql("DROP TABLE IF EXISTS MY_TABLE")
    conn.exec_driver_sql("CREATE TABLE MY_TABLE (id int primary key)")

insp = sa.inspect(engine)
print(insp.get_table_names())
# ['MY_TABLE', 'tbl_main', 'tbl_temp']

您可能需要询问雪花-方形炼金术的开发人员。

票数 1
EN

Stack Overflow用户

发布于 2022-03-23 20:42:03

在雪花数据库中,我只是通过创建不同案例的表进行检查,我注意到的是,如果我们创建具有(test/TEST)这样的小写名称的表,那么SqlAlchemy在get_table_name方法中返回用小写命名的表,但是如果我们创建名称具有混合大小写(TestAbc)的表,那么它就会返回精确的大小写,所以我认为在从sql alchmey元数据/检查方法获得表名后,我们可以简单地将小写表名称转换为上层表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71592948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档