2012-03-03 153 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`;