首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Oracle中插入“入空”记录?

问如何在Oracle中插入“入空”记录?
EN

Database Administration用户
提问于 2014-05-14 11:48:49
回答 1查看 300关注 0票数 1

我正在寻找一种将记录插入“黑洞”的方法,即成功地执行对某个表的查询,但是使记录消失。就像INSERT INTO NULL,如果你愿意的话。MySQL有黑洞引擎,甲骨文能做类似的事情吗?

我唯一能想到的就是:

  • 用SELECT NULL FROM DUAL创建视图
  • 使用INSTEAD OF INSERT和BEGIN NULL; END;创建触发器

这样可以吗?

显然,最佳的方法不是执行insert语句,但我对此没有控制--我必须在DB中修复它。

处理这件事最好的方法是什么?(对性能影响最小的解决方案)

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-05-14 12:22:28

在Oracle上可以这样做的一种方法是在temporary table中使用ON COMMIT DELETE ROWS。这些行将在事务结束时“消失”。如果您使用的是带有自动提交的JDBC等主机环境,这将使其看起来像您所描述的那样。如果性能很重要,这种方法将比“丢弃触发器”方法快得多。

语法:

代码语言:javascript
复制
CREATE GLOBAL TEMPORARY TABLE my_table (
  column1 INTEGER,
  column2 VARCHAR2(100),
  ...
)
ON COMMIT DELETE ROWS;

文档:http://docs.oracle.com/cd/B28359_01/server.111/b 28310/tables003.htm#ADMIN11633

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/65103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档