2017-06-19 175 views
-2

我想在一个MySQL数据库重命名表,从PHP,但是这个代码不工作:RENAME TABLE/ALTER TABLE不工作

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

我试图也用ALTER TABLE或表名为'',但没有。有任何想法吗?

看来,在PHP ALTER TABLE不是命令:/

+0

你得到一些异常或错误信息? 重命名表语法看起来很好。更改表格不能用于重命名表格。 –

+0

你收到任何错误信息? –

+0

这【答案】(https://stackoverflow.com/a/37786534/5513005)可以帮助你的 –

回答

-1

试试这个

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

为什么要这样工作? – axiac

0

看来,在PHP ALTER TABLE不是命令:/

PHP不关心SQL。即使$conn->query()关心它。你传递一个字符串并将其传递给服务器。

确保您使用连接的用户有必要的权限重命名表。 documentation of RENAME TABLE说:

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