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

--skip-column-names在跨脚本调用存储过程时失效问题咨询

问题原因

当使用-e "SOURCE overall.sql"执行命令时,--skip-column-names参数仅对-e后直接指定的SOURCE命令本身生效,而SOURCE加载的overall.sql内的CALL myProc()语句,其输出格式并未继承该客户端参数设置,导致列名依然显示。

解决方法

方案1:直接以输入文件方式执行overall.sql

放弃-e参数,将overall.sql作为mysql客户端的输入文件,整个脚本执行过程都会应用--skip-column-names参数:

mysql <connection properties> --skip-column-names < overall.sql

方案2:在overall.sql内显式关闭列名输出

在overall.sql中调用存储过程前,使用mysql客户端内置命令\set关闭列名显示,执行完成后可按需恢复:

-- 在overall.sql中添加
\set column_names 0;
CALL myProc();
-- 若后续需要恢复列名显示,可添加
-- \set column_names 1;

方案3:使用--batch参数替代--skip-column-names

--batch参数会自动启用--skip-column-names和--silent模式,确保所有输出都不带列名:

mysql <connection properties> --batch -e "SOURCE overall.sql"

方案4:修改存储过程(可选)

如果允许修改存储过程,可将SELECT语句的结果拼接为无列名的格式,例如用CONCAT组合字段:

-- 示例:拼接字段输出,无列名
SELECT CONCAT(col1, ',', col2, ',', col3) FROM your_table;

内容的提问来源于stack exchange,提问作者Marko Galesic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:15:51