RENAME TABLE
功能描述
同一条语句中,修改单个表或多个表的名称,对名称的修改不会影响所存储的数据。
注意事项
- 当修改单个表的表名称时,与ALTER TABLE中RENAME语法等价。
- 当修改多个表的表名称时,与同时执行多次ALTER TABLE中RENAME语法等价;但不支持多组表中,同时存在本地临时表和非本地临时表修改表名称场景。
语法格式
1
|
RENAME { TABLE | TABLES } table_name TO new_table_name [, table_name2 TO new_table_name2, ...]; |
在B模式库中的5.7版本下(即sql_compatibility = 'B'、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;