脚本位于/etc/cron.daily
中。
当我有database name = baseName
和table = tableName
时,下面的清空表的脚本运行良好:
#!/bin/bash
mysql -u root --password=PASSWD -e "DELETE FROM baseName.tableName"
但是我需要重命名baseName.fr.value
中的数据库,因此我基本上将脚本修改为
#!/bin/bash
mysql -u root --password=PASSWD -e "DELETE FROM baseName.fr.value.tableName"
但是我有一个You have an error in your SQL syntax, check the manual...
那么,当数据库名称中包含.
时,正确的语法是什么?
答案 0 :(得分:1)
在MySQL中,您对包含特殊字符的数据库,表或列名称进行反引号
。mysql -u root --password=PASSWD -e 'DELETE FROM `baseName.fr.value`.tableName'
请注意,我从双引号更改为单引号,因为反引号在双引号内使用时对shell具有特殊含义。
请参见When to use single quotes, double quotes, and back ticks in MySQL和Difference between single and double quotes in Bash。