unixODBC连接MariaDB:如何让mariadb-connector-odbc为保留字列名加引号
解决unixODBC连接MariaDB时保留关键字列名自动加引号的问题
关键配置:MariaDB ODBC驱动的自动标识符引号参数
mariadb-connector-odbc 提供了专门的配置项,可自动为列名、表名等标识符添加反引号,无需修改unixODBC本身。针对你的场景,可通过以下方式配置:
在ODBC配置文件中设置:
编辑odbcinst.ini(驱动配置)或odbc.ini(数据源配置),添加如下参数:SQL_QUOTE_IDENTIFIER=YES启用后,驱动会自动将所有标识符用反引号包裹,包括
partition这类保留关键字,生成你期望的SQL格式。通过连接字符串指定:
如果应用是通过连接字符串初始化ODBC连接,直接追加该参数即可:Driver=MariaDB;Server=你的服务器地址;Database=目标库;UID=用户名;PWD=密码;SQL_QUOTE_IDENTIFIER=YES
版本兼容性确认
你当前使用的 mariadb-connector-odbc-3.1.12 完全支持 SQL_QUOTE_IDENTIFIER 参数(该参数在3.0及以上版本已引入),与unixODBC-2.3.9、MariaDB 10.5版本兼容无问题。
备选方案(主配置失效时)
如果上述配置未生效,可尝试在驱动配置中开启ANSI_QUOTES模式:
INIT_COMMAND=SET sql_mode='ANSI_QUOTES'
开启后MariaDB会将双引号视为标识符引号,驱动也会自动用双引号包裹保留关键字,但注意这会改变数据库对字符串和标识符的解析规则,需确保应用逻辑适配。
内容的提问来源于stack exchange,提问作者Anthony Alba
相关产品推荐
相关产品推荐

