what is the difference between 'alter table rename' and 'rename table'?

半腔热情 提交于 2019-12-07 07:13:28

问题


I am using MySQL. Here's an example, I want to rename a table A to B, so what's the difference between following statement:

alter table A rename to B;

and this one:

rename table A to B;

Can anyone give a detail compare between them? Is it vary based on different engine?


回答1:


As documented under ALTER TABLE Syntax:

For ALTER TABLE tbl_name RENAME TO new_tbl_name without any other options, MySQL simply renames any files that correspond to the table tbl_name without making a copy. (You can also use the RENAME TABLE statement to rename tables. See Section 13.1.32, “RENAME TABLE Syntax”.) Any privileges granted specifically for the renamed table are not migrated to the new name. They must be changed manually.

As documented under RENAME TABLE Syntax:

RENAME TABLE, unlike ALTER TABLE, can rename multiple tables within a single statement:

RENAME TABLE old_table1 TO new_table1,
             old_table2 TO new_table2,
             old_table3 TO new_table3;

[ deletia ]

RENAME TABLE does not work for TEMPORARY tables. However, you can use ALTER TABLE to rename temporary tables.

RENAME TABLE works for views, except that views cannot be renamed into a different database.

There are no other differences.



来源:https://stackoverflow.com/questions/18988797/what-is-the-difference-between-alter-table-rename-and-rename-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!