如果 table 存在则创建而不丢弃

Create table without drop if its exist

我需要 PL/SQl 的帮助。

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

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

脚本是这样工作的: 该脚本将文本导入 table,并给出 table。它使用 dblink 连接数据库。它有效,但我必须一直使用 DROP。但是我需要(如果可能的话)创建一个没有 drop/truncate 的现有 table。

有人可以帮助我吗?

非常感谢。

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

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

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

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

这将非常快,停机时间非常短,并且可以让您拥有所描述的功能。

我觉得你要的概念是外在的table。对于外部 tables,数据驻留在 OS 文件中,例如 CSV。这允许我们在不删除 table 的情况下交换数据集。

Find out more.