RENAME TABLE / ALTER TABLE无效

时间:2017-06-19 07:42:02

标签: php mysql

我试图从PHP重命名Mysql数据库中的表,但这段代码不起作用:

$sql = "RENAME TABLE dbname.table TO dbname.tabletmp;"; 
$conn->query($sql);

我还尝试使用ALTER TABLE''作为表名,但没有。有任何想法吗?

似乎在PHP ALTER TABLE中没有命令:/

2 个答案:

答案 0 :(得分:0)

  

似乎在PHP ALTER TABLE中不是命令:/

PHP不关心SQL。甚至$conn->query()都不关心它。您传递一个字符串,然后将其进一步传递给服务器。

确保您用于连接的用户具有重命名表所需的权限。 documentation of RENAME TABLE说:

  

执行RENAME TABLE时,您不能拥有任何锁定的表或活动的事务。您还必须拥有原始表上的ALTERDROP权限,以及新表上的CREATEINSERT权限。

答案 1 :(得分:-1)

试试这个

$sql = "RENAME TABLE `" . $oldname . "` TO `" . $newname . "`" ;
$conn->query($sql);