我有一个shell脚本,它运行一些sql,如下所示:
DB_USER="xxx"
DB_PASSWORD="yyy"
/usr/bin/mysql -u $DB_USER -p$DB_PASSWORD < /home/xylar/tasks/users.sql
在sql文件中,我使用以下命令将用户导出到txt文件中:
SELECT
'id',
'name',
'status'
UNION ALL SELECT a.* FROM(SELECT
id,
name,
status
FROM
users
)a
INTO OUTFILE '/tmp/YYYYMMDD_users_000INC.txt'
FIELDS TERMINATED BY '|' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
我每月都会通过cron任务运行脚本:
0 0 1 * * /home/xylar/tasks/export.sh
sql文件中有两个变量,YYYMMDD和INC,有没有办法将它们作为变量传递?
答案 0 :(得分:0)
如果您需要当前日期代替YYYYMMDD,您可以从SQL脚本本身 - 到现在()函数获取它。
对于增量编号 - 您也可以使用您必须为此目的创建的新表的AUTO_INCREMENT字段在SQL中自己生成它。
但是如果需要传递特定的YYYYMMDD和INC,则必须先“预处理”原始SQL,然后再将其放入“mysql”cmd。如何做到这一点你可以阅读here