2017-06-19 205 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權限。