当数据库名称中包含点(bash脚本)时,如何清除SQL表?

时间:2018-11-15 20:31:06

标签: mysql sql bash sql-delete

脚本位于/etc/cron.daily中。


当我有database name = baseNametable = 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...


那么,当数据库名称中包含.时,正确的语法是什么?

1 个答案:

答案 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 MySQLDifference between single and double quotes in Bash