我們如何知道表格中的第一個插入記錄,讓我們考慮我們已經將100萬條記錄加載到表格中,並且我們在這裏沒有任何時間戳記列。 如何找到它?首先在oracle表中插入記錄?
回答
如果沒有表示插入順序的列,如時間戳,串行字段(例如:主鍵),則沒有方法可以找到第一個插入的行。 SQL標準清楚地表明數據集沒有排序(沒有「自然」順序)。所有hack像rownum,row id等都不保證在重新索引數據庫,重新加載數據庫和類似的操作之後工作。
儘管取決於應用程序設計,具有「第一個」ID的行可能不是第一行_committed_,反正...... –
您是對的 - 確定「第一行」的含義本身就是一個問題。 – piotrpo
不是100%準確(如piotrpo指出的),但如果你都OK與ORA_ROWSCN
(docs)提供的值的精確度,你可以找出哪些行已先插入(當然,如果:這不是什麼t稍後更新)。是正確的,甚至排不出,但如果行所在的塊 - 您可以使用DBMS_ROWID
功能,深入到行級(同樣,不是100%準確):
SELECT DBMS_ROWID.ROWID_ROW_NUMBER(ROWID),
SCN_TO_TIMESTAMP(ORA_ROWSCN)
FROM table1 ORDER BY 2 DESC, 1 ASC
如果您已經確定與IDS列你無論如何不知道哪一行是第一個,因爲你不知道是否有人手動添加id低於然後休息的行,一種解決方案是添加到表格字段與時間戳/日期格式插入或修改每行插入時間。但是...
SELECT SCN_TO_TIMESTAMP(ora_rowscn),ora_rowscn FROM your_table
當你連續被修改,你可以找到/加...也許有一些解決方案,但不是ROWID。這樣,你只能找到第一個/最後更新的行...
剛剛從MY_TABLE使用ROWID像
選擇*,其中的rowid在 ( 從MY_TABLE 選擇分鐘(ROWID))
它應該工作
我不認爲rowid適合我的要求。 rowid基於插入的記錄生成?如果將來發生變化呢? –
- 1. 想要在oracle中插入記錄
- 2. 在oracle中插入多條記錄
- 3. 插入記錄成兩個Oracle表
- 4. Java-Oracle插入記錄
- 5. Oracle插入缺失記錄
- 6. 在oracle中從一個表插入記錄到另一個表
- 7. 插入語句中的記錄數(Oracle)
- 8. 在表中選擇`n`最後插入記錄 - oracle
- 9. 在Oracle表中插入具有不同語言值的記錄
- 10. 使用SSIS插入記錄而不插入預先存在的記錄
- 11. 插入表中的記錄
- 12. 從表中插入記錄
- 13. Oracle SQL - 如何插入多個記錄
- 14. 以oracle形式插入記錄
- 15. 如何使用shell腳本將記錄插入到oracle表中?
- 16. 如何找到oracle表中記錄的插入時間
- 17. RODBC無法將記錄一次插入到oracle表中一行
- 18. 使用oracle將記錄插入到兩個表中
- 19. 如何在表中插入空記錄
- 20. 在表格中間插入新記錄
- 21. 如何在子表中插入記錄?
- 22. 插入父表時插入在外鍵表中的新記錄
- 23. 首先選擇從表1表2中以插入的mysqli PHP
- 24. 當父記錄已經存在時,使用實體框架代碼先插入子記錄表中的記錄
- 25. 在oracle中記錄plsql表中記錄的新記錄
- 26. 如何首先獲取RECENT記錄?
- 27. MYSQL選擇記錄大於或首先
- 28. 在asp.net中插入記錄
- 29. 從EF 6.0調用存儲過程代碼首先不插入記錄
- 30. 如何在oracle中將多行的值插入到記錄中?
不幸的是,沒有辦法找到這個。 – abhi
_Why_你需要這些信息嗎?你想要做什麼? –
您可以在單個原子事務中插入多條記錄。對於插入「第一」記錄意味着什麼? –