【发布时间】:2013-09-16 03:05:45
【问题描述】:
如果我必须重命名具有同义词、分区、其他用户读取权限等的表。
在不影响所有这些的情况下,最好的重命名方法是什么?
一个快速的谷歌搜索引导我到
ALTER TABLE OLD_NAME RENAME TO NEW_NAME
如果这是正确的方法,请告诉我
感谢和问候
【问题讨论】:
-
看看这里(保留赠款等):rename
如果我必须重命名具有同义词、分区、其他用户读取权限等的表。
在不影响所有这些的情况下,最好的重命名方法是什么?
一个快速的谷歌搜索引导我到
ALTER TABLE OLD_NAME RENAME TO NEW_NAME
如果这是正确的方法,请告诉我
感谢和问候
【问题讨论】:
重命名表时,授权、分区、索引、触发器和约束不受影响。
但是,对表的引用不会自动更新 - 因此您需要修复任何同义词以及引用该表的任何代码(例如,在视图、存储过程、包和其他表上的触发器中)直接。
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm#sthref5046
【讨论】:
是的,在 oracle 中重命名表是一种正确的方法,或者您可以使用,
RENAME old_name TO new_name;
但它会使依赖于该表的所有对象无效。
【讨论】: