“ alter table named”和“ rename table”有什么区别?

Sua*_*guo 4 mysql alter-table table-rename

我正在使用MySQL。这是一个示例,我想将表A重命名为B,因此以下语句之间有什么区别:

alter table A rename to B;
Run Code Online (Sandbox Code Playgroud)

还有这个:

rename table A to B;
Run Code Online (Sandbox Code Playgroud)

谁能提供详细的比较?是否因引擎不同而有所差异?

egg*_*yal 5

ALTER TABLE语法所示

对于没有其他选项的情况,MySQL仅重命名与该表相对应的所有文件,而无需进行复制。(您也可以使用该语句来重命名表。请参见第13.1.32节“ 语法”。)专为重命名表授予的任何特权都不会迁移到新名称。必须手动更改它们。ALTER TABLE tbl_name RENAME TO new_tbl_nametbl_nameRENAME TABLERENAME TABLE

RENAME TABLE语法所示

RENAME TABLE不同于ALTER TABLE,可以在单个语句中重命名多个表:

RENAME TABLE old_table1 TO new_table1,
             old_table2 TO new_table2,
             old_table3 TO new_table3;
Run Code Online (Sandbox Code Playgroud)

[ deletia ]

RENAME TABLETEMPORARY表不起作用。但是,您可以使用ALTER TABLE重命名临时表。

RENAME TABLE 适用于视图,但不能将视图重命名为其他数据库。

没有其他区别。

  • @Suanmeiguo:不,速度应该没有差异。如[CREATE TABLE语法](http://dev.mysql.com/doc/en/create-table.html)所述:“ * TEMPORARY表仅对当前连接可见,并且已被删除连接关闭时自动运行。*“ (2认同)