代码之家  ›  专栏  ›  技术社区  ›  azro

当数据库的名称中有一个点(bash脚本)时,如何清除SQL表?[复制品]

  •  -1
  • azro  · 技术社区  · 6 年前

    剧本在里面 /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...


    那么当有一个 . 在数据库名称中?

    1 回复  |  直到 6 年前
        1
  •  1
  •   azro    6 年前

    在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 .