添加表时脚本出现mysql错误

时间:2012-03-03 02:18:43

标签: mysql database apache scripting

Mysql错误(请不要笑)

我制作了一个脚本,为我的网站生成统计表。此脚本生成超过2000个表,这些表用于具有不同粒度的不同统计数据,如:

  • 表年数
  • 每天的表格
  • 用户的表格
  • table by user_agent
等等......(不要问我为什么这样,它是由前面所谓的建筑师制作的 - 他们在不到0.02秒的时间内加载)

所以我更新了脚本以添加新表,但我犯了一个错误。

我在表名中放了一个空格,现在我无法将其删除。所以我试着用它来逃避它但没有成功:

root@summary:reports> drop table xd_2012_02_\ ua;
ERROR: 
Unknown command '\ '.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\ ua' at line 1

2 个答案:

答案 0 :(得分:8)

你必须使用` - 这会将传递的字符串视为实际的表名而不是你要执行的一堆命令。

root@summary:reports> drop table `xd_2012_02_\ ua`;

这应该显示:

Query OK, 0 rows affected (0.00 sec)

我建议不仅在这种情况下使用`,而且如果您使用typedesc这样的保留MySQL字词,也可以防止出现错误(作为说明) )用于列或表名。这可能会在以后节省您的麻烦。虽然使用保留或特殊字符不是一个好习惯,但那只是我。

答案 1 :(得分:0)

使用以下语法:

drop table \`xd_2012_02 ua\`;

这应该适用于空间