【发布时间】:2010-10-24 12:54:42
【问题描述】:
在 Oracle 中重命名表或视图的语法是什么?
【问题讨论】:
-
@skaffman: lmgtfy.com/ 正是您所需要的 :)
标签: oracle table-rename
在 Oracle 中重命名表或视图的语法是什么?
【问题讨论】:
标签: oracle table-rename
ALTER TABLE mytable RENAME TO othertable
在Oracle 10g也:
RENAME mytable TO othertable
【讨论】:
要重命名表,您可以使用:
RENAME mytable TO othertable;
或
ALTER TABLE mytable RENAME TO othertable;
或者,如果由另一个架构拥有:
ALTER TABLE owner.mytable RENAME TO othertable;
有趣的是,ALTER VIEW 不支持重命名视图。但是,您可以:
RENAME myview TO otherview;
RENAME 命令适用于表、视图、序列和私有同义词,仅适用于您自己的架构。
如果视图不在您的架构中,您可以使用新名称重新编译视图,然后删除旧视图。
(在 Oracle 10g 中测试)
【讨论】:
要重命名不同架构中的表,请尝试:
ALTER TABLE owner.mytable RENAME TO othertable;
重命名命令(如“rename mytable to othertable”)仅支持重命名同一架构中的表。
【讨论】:
同样可以rename indexes:
alter index owner.index_name rename to new_name;
【讨论】:
过去 10g 当前答案不再适用于重命名视图。 唯一仍然有效的方法是删除并重新创建视图。 我能想到的最好方法是:
SELECT TEXT FROM ALL_VIEWS WHERE owner='some_schema' and VIEW_NAME='some_view';
在返回的 SQL 前面加上这个
创建或替换视图 some_schema.new_view_name 为 ...
删除旧视图
删除视图 some_schema.some_view;
【讨论】: