我们如何知道表格中的第一个插入记录,让我们考虑我们已经将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_你需要这些信息吗?你想要做什么? –
您可以在单个原子事务中插入多条记录。对于插入“第一”记录意味着什么? –