首页 > 解决方案 > SQLAlchemy - MySQL 表名中的特殊字符

问题描述

我正在使用以下代码 SQL Alchemy 代码动态创建 MySQL 表:

meta = Base.metadata
table_data = Table(
    table_name, meta,
    Column('id', Integer, primary_key=True, nullable=False),
    Column('file_name', String(250), nullable=False))
)
meta.create_all(engine, [table_data])

table_name变量是通过 API POST 调用发送的唯一字符串。问题是表名可以包含特殊字符,我无法更改。

如果我尝试通过 MySQL 工作台手动创建名称,它工作正常。但是当我通过 SQL Alchemy 执行此操作时会引发错误。有人可以建议如何使它工作吗?任何帮助表示赞赏。

谢谢!

编辑:这是一个示例,名称错误data_E82sR4g5YtXqv@AT2QIwH4bQ==

(MySQLdb._exceptions.ProgrammingError) (1064, '')
[SQL: drop table if exists data_E82sR4g5YtXqv@AT2QIwH4bQ==]
(Background on this error at: http://sqlalche.me/e/f405)

标签: pythonsqlalchemy

解决方案


推荐阅读