2012-03-03 188 views
4

重命名MySQL表我想用SQL語句來重命名現有表:使用SQL語句

我已經嘗試:

1)mysql_query("RENAME '$renameFolder' TO '$newName'"); 
2)mysql_query("ALTER TABLE '$renameFolder' RENAME TO '$newName'"); 
3)mysql_query("RENAME TABLE '$renameFolder' TO '$newName'"); 

使用任何3條語句的我總是得到同樣的錯誤信息:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax" 

請告訴我什麼即時做錯了!

+0

嘗試:「重命名錶$ renameFolder TO $了newName」 – EricSonaron 2012-03-03 19:46:23

+0

** WARNING **:'mysql_query'是一個過時的接口,不應在新的應用程序,因爲它是在PHP的未來版本中被刪除使用。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。如果您是PHP的新手,像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳做法。 – tadman 2015-02-02 16:28:23

回答

4

嘗試使用反引號代替,例如:

mysql_query("RENAME TABLE `" . $renameFolder . "` TO `" . $newname . "`"); 
+0

我認爲是這樣的。從邏輯上講,我們必須在'不'之間扭曲表名。 – artragis 2012-03-03 19:47:44

+0

只是試了一下。同樣的錯誤:( – user1216858 2012-03-03 19:51:15

+0

我試着在我自己的設置和刪除引號解決它。我懷疑你的表名稱中有非字母數字字符。請試着用''引號,而不是atragis說。 – Overv 2012-03-03 19:52:47

0

嘗試沒有引號所以最終的查詢看起來像:

mysql_query ("ALTER TABLE foo RENAME TO bar"); 

希望這有助於。

+0

我試過它沒有引號,同樣的錯誤... – user1216858 2012-03-03 19:53:03

1

您是否已正確連接到服務器?

你是否選擇了表格所在的分區?

如果你有,那麼你應該能夠運行這個命令:

mysql_query("ALTER TABLE table_name RENAME TO new_table_name"); 
+0

是的表是我在使用這個語句,並沒有爲我工作 – user1216858 2012-03-03 19:52:13

+0

然後,你必須把''表名或字符串連接變量作爲建議通過Overv。 – David 2012-03-03 19:55:39

1

MySQL查詢的命名錶是
RENAME TABLE old_name TO new_name

2

appected從mysqli的答案:

$db=mysqli_connect("localhost","root","password","database"); 
$oldFolder="old_table_name"; 
$newname="new_table_name"; 
mysqli_query($db,"RENAME TABLE `" . $oldFolder . "` TO `" . $newname . "`"); 

祝你好運!

0
RENAME TABLE `jshop`.`mob_apple` TO `jshop`.`item_mobile`;