我想在我的架构中以事务方式交换两个表。
我的想法是我有两个表具有相同的定义和不同的名称。一个表目前正在“使用中”,而另一个表是“暂存”。
每隔30分钟,临时表将被截断并加载一组新数据。此时,我想在事务上将“使用中”表与“临时”表交换,以便对“正在使用”表中的任何查询都没有停机时间。
Example:
myTable
myTable_staging
--truncate staging table
truncate myTable_staging;
--bulk load into staging table
insert into myTable_staging select bunch, of, data from someTable;
--transactionally swap the two tables
rename myTable to myTable_old, myTable_staging to myTable, myTable_old to myTable_staging;
任何人都可以在Oracle 11g中提出解决方案吗?