Tom*_*Tom 4 oracle plsql rename
我在plsql脚本中有一些(5)重命名语句
drop table new;
rename old to new;
Run Code Online (Sandbox Code Playgroud)
"旧"表格包含非常有价值的信息.
在我看来,如果重命名命令保证是原子的,那么我就解决了一个问题.
它是原子的吗?如果没有,有没有办法进行"安全"重命名?
提前致谢
RENAME是一个DDL命令.所以它是一个单独的离散事务,如果这就是你在这种情况下的原子意味着什么.因此,它与任何事情一样安全.我无法想象重命名会如何导致您丢失数据.但如果你感到偏执,请记住这就是大自然为我们提供备份和恢复的原因.
编辑
如果DROP成功并且RENAME失败是要部署RENAME两次,确保不丢失数据的方法:
SQL> rename old_table to something_else;
SQL> rename new_table to old_table;
SQL> drop table something_else;
Run Code Online (Sandbox Code Playgroud)
这样你就可以在线获取数据了.这也最大限度地减少了停机时间.