我正在开发一个项目,我需要从Oracle数据库中删除一个随机行。我应该使用哪个查询?
答案 0 :(得分:2)
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 )