mysql - 如何使用 MySQL 或批处理文件创建文件名,其中部分文件内容需要在名称中?
问题描述
好的,这就是我想要做的。
使用 MySQL 命令行,我正在运行一个脚本,然后像这样保存数据:
mysql -h DATABASE -u yyyy -pxxxx < E:/Step_2.sql > E:/OUTPUT_YYYY_QQ.csv
现在,无论是使用 MySQL 还是 Windows 批处理命令,我都希望 YYYY 和 QQ 成为特定值。但这不是当前日期。在此示例中,我希望 YYYY 为 2017 年,QQ 为 Q4。
我可以灵活选择:
如果需要,使用其中的值在 SQL 中创建一个新表。然后在帮助下运行命令以将这些值用作文件名的一部分。
或者我可以将文件放在服务器上的某个位置以“引用”,以便获取数据并将其放在文件名中。
有什么想法吗?
解决方案
在这里,我创建了一个名为“test.sh”的 shell 脚本,它将动态生成文件名,但您只需将此 shell 脚本转换为 windows 批处理即可。根据您的评论,这对您来说是一个想法。
测试.sh
file_name=$(mysql -N -hlocalhost -uvivek -pvivek -e "select concat('OUTPUT_',year(date_column),'_Q',quarter(date_column),'.csv') file_name from table_name")
mysql -hlocalhost -uvivek -pvivek </home/vivekanand/vivek/stack/test.sql >/home/vivekanand/vivek/stack/$file_name
运行脚本后,我创建了如下文件,并正确输出了 SQL 文件“test.sql”
-rw-rw-r-- 1 vivekanand vivekanand 14535 May 7 13:56 OUTPUT_2017_Q4.csv
推荐阅读
- php - 检测重复数组,然后在 PHP 中将插入推送到新数组
- c++ - GLUT displayfunc 在没有回调设置的事件中调用
- javascript - 如果需要,如何使用 Jimp 调整图像大小
- html - 当窗口大小从全屏变为小时,Jumbotron 和背景图像消失
- security - 使用 UID 作为密钥是否可以防止 CSRF 攻击?
- google-analytics - 当我在谷歌标签管理器中使用预览模式时,它会为标签助手的测试版打开一个新标签,我该如何摆脱它?
- ruby-on-rails - Rails 认为我的普通种子数据是文件路径,抛出“Errno::ENOENT: No such file or directory”
- flutter - 无法摆脱 Sliver 身体周围的浅灰色边框
- javascript - 减少表情符号对象数组以获取每个表情符号javascript的计数
- kotlin - Mockito:在 Kotlin 中模拟一个 khttp 对象