2017-03-17 18 views
-2

我正在研究一個項目,我需要從Oracle數據庫中刪除一個隨機行。我應該使用哪個查詢?如何在Oracle數據庫中一次刪除一個隨機行

+0

你有什麼已經嘗試過?你可能應該生成一個隨機整數,最小值爲1,最大值爲現有數據庫的大小,然後用主鍵刪除。 –

+0

有一個1行查詢就足夠了,但我沒有得到它 – Indrapreet

+1

再次,你有什麼嘗試?爲什麼這個問題用Java標記?我在這個問題中沒有看到與java有關的任何東西。 – klutt

回答

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) 
+0

Thankyou這麼多#APC,它爲我工作:-) – Indrapreet

+0

如果這個答案幫助你應該接受它(和/或upvote它)。被接受的答案改善這個網站作爲其他求職者的資源。 – APC

+0

@Indrapreet如果答案是正確的,請接受答案並加註。 – user75ponic

相關問題