我正在寻找一种将记录插入“黑洞”的方法,即成功地执行对某个表的查询,但是使记录消失。就像INSERT INTO NULL,如果你愿意的话。MySQL有黑洞引擎,甲骨文能做类似的事情吗?
我唯一能想到的就是:
SELECT NULL FROM DUAL创建视图INSTEAD OF INSERT和BEGIN NULL; END;创建触发器这样可以吗?
显然,最佳的方法不是执行insert语句,但我对此没有控制--我必须在DB中修复它。
处理这件事最好的方法是什么?(对性能影响最小的解决方案)
发布于 2014-05-14 12:22:28
在Oracle上可以这样做的一种方法是在temporary table中使用ON COMMIT DELETE ROWS。这些行将在事务结束时“消失”。如果您使用的是带有自动提交的JDBC等主机环境,这将使其看起来像您所描述的那样。如果性能很重要,这种方法将比“丢弃触发器”方法快得多。
语法:
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
https://dba.stackexchange.com/questions/65103
复制相似问题