You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL迁移至MariaDB 10.11后查询列名大小写不符的配置咨询

问题:MariaDB 10.11 配置返回大写列名以匹配MySQL行为

原有系统使用MySQL,现已迁移至MariaDB 10.11。执行如下SQL查询后,发现新旧数据库返回的结果列名大小写不一致:

SELECT AA.CLOSING_ADVICE_ID, AA.CLOSING_ADVICE_NUMBER 
FROM
(
SELECT ca.closing_advice_id,ca.CLOSING_ADVICE_NUMBER,ca.debit_note_id,ca.currency_id,pp.payment_plan_term, (pr.PRODUCTION_NET_PREMIUM * (pp.PAYMENT_PLAN_PERCENTAGE/100)) AS due_to_you 
FROM t_closing_advice ca 
INNER JOIN t_production pr ON ca.closing_advice_id=pr.closing_advice_id 
INNER JOIN t_payment_plan pp ON ca.closing_advice_id=pp.closing_advice_id )AA 
WHERE AA.CLOSING_ADVICE_ID=1500;

原MySQL查询结果返回的列名为全大写,而MariaDB返回的列名大小写与SQL语句中书写的一致(混合大小写)。希望无需修改SQL语句,通过配置让MariaDB返回大写列名,询问是否有相关配置项?

解决方案

  • 可通过配置lower_case_table_names参数实现列名全大写返回,匹配MySQL的默认行为:
    • 该参数需在MariaDB启动前设置,无法动态修改(动态调整会报错)
    • 设置值为2:表名按输入的大小写存储,但比较时不区分大小写;同时查询返回的列名会自动转换为大写
  • 修改配置步骤:
    1. 编辑MariaDB的配置文件(常见路径为/etc/my.cnf、/etc/mysql/my.cnf或用户目录下的~/.my.cnf,依系统环境而定)
    2. 在[mysqld]配置段中添加:
      lower_case_table_names=2
      
    3. 重启MariaDB服务使配置生效
  • 注意事项:
    • 修改前需确保现有数据库中所有表名的大小写一致,避免出现表找不到的异常
    • 该参数同时影响表名和列名的大小写处理,设置后表名的查询比较也会不区分大小写

内容的提问来源于stack exchange,提问作者Denny Septian Panggabean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:40:13