如何在Oracle数据库中一次删除一个随机行

时间:2017-03-17 17:16:51

标签: sql oracle

我正在开发一个项目,我需要从Oracle数据库中删除一个随机行。我应该使用哪个查询?

1 个答案:

答案 0 :(得分:2)

显然,这是一个DELETE语句。这是一个棘手的随机部分。

Oracle有一个PL / SQL包来处理随机性DBMS_RANDOM。如果表格很小或性能不重要,这将起作用:

delete from your_table
where id = ( select id from 
                (  select id from your_table
                   order by dbms_random.value)
             where rownum = 1)
/

最里面的查询以随机顺序对表进行排序。子查询选择该集合中的顶行,并且该行将被删除。

或者,如果你知道你有多少记录......

delete from your_table
where id = ( select round(dbms_random.value(1,10000))
             from dual )