如果表存在,则不创建表

时间:2015-06-23 15:44:02

标签: oracle plsql truncate

我需要在PL / SQl中提供帮助。

所以我的问题是,以下问题:

有一个名为:temp_table的表,我需要创建一个没有drop / truncate选项的temp_table。它需要因为表格的数据一直在变化。 所以我知道它很奇怪,但这对我的日常工作来说是必要的。

脚本的工作方式如下: 该脚本对表进行文本导入,并给出该表。它使用dblink连接数据库。它有效,但我一直都在使用DROP。但我需要(如果可能的话)创建一个没有drop / truncate的现有表。

有人可以帮助我吗?

非常感谢。

很抱歉没有sql代码,但我认为没有必要。

2 个答案:

答案 0 :(得分:0)

我认为你想放弃它,因为你想重新加载它,但你也希望它尽可能接近恒定的正常运行时间?

我会创建两个临时表。你已经有一个名为:

temp_table

创建另一个名为:

temp_table_new

将新数据加载到temp_table_new中,然后对其进行重命名,如下所示:

RENAME TABLE temp_table TO temp_table_old
 temp_table_new TO temp_table

然后

drop table temp_table_old

这将是超级快速,停机时间非常短,并且允许您拥有您所描述的功能。

答案 1 :(得分:0)

我认为你想要的概念是外部表。对于外部表,数据驻留在OS文件中,例如CSV。这允许我们交换数据集而不丢弃表。

Find out more