更新时间:2024-08-20 GMT+08:00

RENAME TABLE

功能描述

同一条语句中,修改单个表或多个表的名称,对名称的修改不会影响所存储的数据。

注意事项

  • 当对单个表修改表名称时,与ALTER TABLE中RENAME语法等价。
  • 当对多个表修改表名称时,与同时执行多次ALTER TABLE中RENAME语法等价;但不支持多组表中,同时存在本地临时表和非本地临时表修改表名称场景。

语法格式

修改表的名称。

1
RENAME { TABLE | TABLES } table_name TO new_table_name [, table_name2 TO new_table_name2, ...];

在MYSQL模式库中的5.7版本下(即sql_compatibility = 'MYSQL'、b_format_version='5.7'、b_format_dev_version='s2')执行该命令,会出现以下特殊现象:

  • 新表名对应字符串以"#mysql50#"开始,且其后还有其他字符,"#mysql50#"将被忽略。
  • 如果新旧表名一致,不会报错。

参数说明

  • TABLE | TABLES

    TABLE和TABLES可以互相替换使用,与语句中操作表的个数无关。

  • table_name TO new_table_name [, table_name2 TO new_table_name2, ...]

    table_name、table_name2等为需要修改的表名。

    new_table_name、new_table_name2等为修改后的新表名。

    TO为中间连接词。

修改表示例

  • 单表修改名称
    gaussdb=# CREATE TABLE aa(c1 int, c2 int);
    gaussdb=# RENAME TABLE aa TO test_alt1;
    gaussdb=# DROP TABLE test_alt1;
  • 多个表修改名称
    gaussdb=# CREATE TABLE aa(c1 int, c2 int);
    gaussdb=# CREATE TABLE bb(c1 int, c2 int);
    gaussdb=# RENAME TABLE aa TO test_alt1, bb TO test_alt2;
    gaussdb=# DROP TABLE test_alt1,test_alt2;

相关链接

ALTER TABLE