使用单个命令重命名多个表

时间:2017-08-22 20:57:19

标签: mysql oracle rename

可以使用这里提到的mysql:

https://www.electrictoolbox.com/rename-multiple-tables-mysql/

oracle可以采取类似的行动吗?

类似的东西:

Alter table tbl1 rename to new1, tbl2 to new2;

1 个答案:

答案 0 :(得分:1)

我能想到的另一种方法是,您可以使用ALTER中的一个select生成多个ALL_TABLES命令。

SELECT 'Alter table '
  ||table_name
  ||' rename to '
  ||table_name
  ||'_NEW'
  ||rn||';' Alter_command
FROM
  (SELECT ROWNUM rn ,
    a.*
  FROM ALL_TABLES a
  WHERE TABLE_NAME IN ('<LIST_OF_TABLES>')
  ) ORDER BY TABLE_NAME;

输出:

Alter table ABCD_TMP rename to ABCD_TMP_NEW1509;
Alter table ABCD_TMP3 rename to ABCD_TMP3_NEW1510;
Alter table ACCESS$ rename to ACCESS$_NEW46;
Alter table ACCOUNT rename to ACCOUNT_NEW1549;
Alter..
.....