oracle rowid 内部是如何生成的?

2023-12-11

我想知道oracle中的ROWID是增量生成的吗? 如果我尝试下面的查询

select min(ROWID) from table

我是否总是会获得表中第一个插入行的 ROWID,还是最终可能会获得任何随机行的 ROWID? 如果有人能阐明这一点,那将非常有帮助


“最小”rowid 将可能不会始终提供表中第一个插入的行。引用自文档:

rowid分配给行片后,特殊情况下rowid可以改变。例如,如果启用了行移动,则 rowid 可能会因分区键更新、闪回表操作、收缩表操作等而发生更改。如果禁用行移动,则在使用 Oracle 数据库实用程序导出和导入行时,rowid 可能会更改。

The “等等”表示有很多原因会导致 rowid 改变。这可以很容易地用一个小例子来证明:

create table tmp_test ( a number );
insert into tmp_test values (1);
select rowid, a from tmp_test;

ROWID                       A
------------------ ----------
AABo3AAFvAAAda6AAA          1
alter table tmp_test move;
select rowid, a from tmp_test;

ROWID                       A
------------------ ----------
AABo3BAFvAAAdbjAAA          1

你会注意到,之后alter table操作唯一的rowid已经改变。

如果 rowid 可以更改,并且 Oracle 没有明确保证“最低”rowid 始终是第一个插入的行,那么如果需要,您应该有另一种方法来跟踪这一点。时间戳或递​​增序列是正常的。

在不引用任何数据的情况下找到第一个插入的行一定是一个非常不寻常的要求。如果这是您正在考虑使用的东西,我会再看一下why你需要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle rowid 内部是如何生成的? 的相关文章

  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 私人聊天系统MYSQL查询显示发送者/接收者的最后一条消息

    在这里我延伸一下我之前的问题 私人聊天系统MYSQL查询ORDERBY和GROUPBY https stackoverflow com questions 10929366 private chat system mysql query o
  • 具有连字符的 Oracle 正则表达式在 Windows 上给出的结果与在 Unix 上不同

    我有以下带有正则表达式的查询 select REGEXP REPLACE TEST 3304 V2 lt gt as REG from dual 当通过 SQL Plus 在Windows机器返回以下内容 SQL gt select REG
  • 如何对多行的一列值求和?

    我有这个表 我想添加几行的 change 列的值 或者更准确地说 从 ne 值为零的行到 ne 值为零的下一行 不是第二个本身 任何答案将不胜感激 rn date ne change 0 2008 12 07 0 10330848398 1
  • SQL Server 2012:有条件地增加计数器用户 ROW_NUMBER()

    我正在尝试申请ROW NUMBER 根据特定条件增加计数器 我的数据如下所示 目标计数器是Prep column id DSR PrepIndicator Prep 1662835 1 1 1 1662835 14 2 2 1662835
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 使用 .NET 中的类型化数据集将 SQL 参数传递给 IN() 子句

    首先道歉 因为该网站上有类似的问题 但没有一个直接回答这个问题 我在 VS 2010 中使用类型化数据集 我在数据集中创建一个 TableAdapter 查询如下 SELECT from Table WHERE ID IN IDs 现在如果
  • ASP SQL Server 连接

  • 在 PostgreSql 中计算百分比

    例如我有一个这样的表 string adm A 2 A 1 B 2 A 1 C 1 A 2 通过 SQL 查询 我想要这样的结果 string perc adm A 50 B 100 C 0 我想要每个字符串中数字 2 出现的百分比 我可以
  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • 在 MS Access SQL 查询中从正常日期转换为 unix 纪元日期

    我正在尝试编写一个通过 ODBC 连接到 MySQL 数据库的 MS Access 2007 连接的查询 一切工作正常 查询执行我想要的操作 我挂断的部分是我一直在询问用户 unix 纪元时间 而不是常规日期 我查找了 MS Access
  • Oracle即时客户端和Oracle客户端之间的区别

    Oracle即时客户端和Oracle客户端有什么区别 你能给我解释一下吗 谢谢 Oracle 客户端附带一个安装程序和许多可执行文件 例如 sqlplus tnsping 很完整而且很大 Oracle Instant 客户端是一个基本的轻量
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER
  • SQL 错误:ORA-14006:无效的分区名称

    我正在尝试使用以下 SQL 语句对 Oracle 12C R1 中的现有表进行分区 ALTER TABLE TABLE NAME MODIFY PARTITION BY RANGE DATE COLUMN NAME INTERVAL NUM
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • PLSql 返回值

    我再次使用一些 PLSql 我想知道 是否有任何方法可以像选择一样使用以下函数 而不必将其转换为函数或过程 这样我就可以从包含它的脚本中看到代码 代码如下 DECLARE outpt VARCHAR2 1000 flow rI VARCHA
  • 在Oracle中使用IW和MM

    我使用 IW 表示每周结果 使用 MM 表示每月结果 但我总是收到错误 ORA 00979 not a GROUP BY expression 00979 00000 not a GROUP BY expression 我的疑问是这些 We

随机推荐

  • 使用邻接表创建图

    include
  • C#:即使使用 httpclient 发送 CSRF 令牌后也会收到 403

    我正在尝试从我的 UWP 应用程序将有效负载发布到我们的后端系统 为此 我首先执行 GET 来获取 CSRF 令牌 然后将其添加到 POST 请求的标头中 发帖时 我仍然收到 403 Forbidden 错误 我正在与 Insomnia R
  • R:使 Ryacas 包在 Windows 上运行时遇到问题

    我正在尝试使用该包Ryacas in R 这是发生了什么 gt install packages Ryacas Please select a CRAN mirror for use in this session trying URL h
  • ASP.NET高效聊天应用方法

    我有与 SQL SERVER 2005 2008 连接的 ASP NET 4 Web 应用程序 我想为我的应用程序用户添加 聊天 功能 假设该功能将从头开始构建 最有效的合理方法是什么 Using WCF每 3 秒有一个 Javascrip
  • 手动更改 URL 时 React 路由不起作用 |反应路由器 4

    当通过 React router 的 Link 组件更改 URL 时 我的路由工作正常 但是 如果我尝试在浏览器中手动更改 URL 则会出现 404 错误 下面是routes js文件 import React from react imp
  • 如何在android中的按钮单击事件上删除项目后刷新列表视图?

    我想从Listview中删除一个项目 并在删除项目后刷新Listview 怎么可能 我正在使用 JSON 解析从数据库获取所有项目 并通过单击按钮删除选定的项目 从数据库中删除成功 但 Listview 无法一次刷新 怎么做 我正在使用 J
  • 有没有办法在fabric文件中进行滚动部署?

    给出以下 fabfile from fabric api import env run env user implicit user env hosts host1 explicit user host2 host3 def print u
  • 连接 SSIS 中多行的值

    我有一个文件源 其中数据如下所示 ID BarcodeNumber 1 123456789 1 33 2 987654321 2 44 我想获取数据如下 ID BarcodeNumber 1 12345678933 2 9876543214
  • Javascript 按值将数组传递给函数,保持原始数组不变

    我在这里阅读了许多与 按值 和 按引用 传递有关将数组发送到 JavaScript 函数的答案 然而 我在将数组发送到函数并保持原始数组不变时遇到问题 这个例子说明了这个问题 function myFunction someArray an
  • Django 在本地提供静态文件

    我已经有一段时间没有设置 django 在本地工作了 我用的是版本1 11 让它为静态文件提供服务 我的项目叫做chatsys我已经在这个文件夹中创建了 static 文件夹和 csschatsys static css style css
  • 在后面的 C# 代码中显示“是/否”警报框

    我正在尝试从 C 代码隐藏中显示 是 否 消息框 如果用户单击 是 我想调用 AddRecord 过程 如果用户单击 否 则不执行任何操作 理想情况下 我想使用下面的代码 但来自代码隐藏 OnClientClick return confi
  • NSData 到 Java 字符串

    我最近一直在编写一个与 iPhone 交互的 Web 应用程序 iPhone iphone实际上会以plist的形式向服务器发送信息 所以 类似的事情并不少见
  • 如何在托管库中正确构建回调 URL 的状态令牌?

    我在使用 Google Apps 脚本时遇到问题状态代币从托管库调用时 这意味着一个The state token is invalid or has expired Please try again 如果状态令牌是从子函数创建的 则始终会
  • 错误 1052 (23000):where 子句中的列“course_id”不明确

    我是 MySQL 新手 所以请告诉我我的问题是否缺少信息 我有一个运行良好的查询 select au email sm created sm grade sm max grade from auth user au courseware s
  • iOS - 如何保证 applicationWillTerminate 将被执行

    有没有办法保证applicationWillTerminate方法中的AppDelegate代表会被打吗 像 info plist 文件中的密钥之类的东西 我的目标 我正在一个信标应用程序中工作 这段代码位于本文 我的问题是 即使我在信标旁
  • 如何以编程方式将图片(位图)分配给联系人?

    我有一个位图类型的变量 我想将其作为 CalledID 图片分配给我的联系人列表中的联系人 我该怎么做 您必须为这些创建自己的哑剧类型 下面是一个将布尔值作为我的自定义 MIME 类型保存到联系人的示例 它使用最新的SDK 2 1 重要的
  • 检查有效的 html C#

    C 中是否有一种简单的方法来验证 html 文件 htm 你可以试试这篇文章C 验证 XHTML在 Dot Net Perls 上 如果您不习惯在 C 中执行此操作 那么通常验证 HTML 的最佳方法是使用W3C 验证服务 当然 如果对您的
  • Groovy 脚本获取请求 xml

    我可以使用 Groovy 脚本获取响应 xml 我需要获取请求 XML 因为我需要将 断言脚本 添加到我的soap ui 测试中 我使用以下代码来获取响应 xml def response new XmlHolder messageExch
  • python win32print 不打印

    我需要直接打印一些信息 无需用户确认 并且我正在使用 Python 和win32print模块 我已经读完了全文蒂姆 戈尔登 win32打印页 甚至阅读win32打印文档 很小 我使用的是他自己在那里写的相同示例 但我什么也没打印 如果我进
  • oracle rowid 内部是如何生成的?

    我想知道oracle中的ROWID是增量生成的吗 如果我尝试下面的查询 select min ROWID from table 我是否总是会获得表中第一个插入行的 ROWID 还是最终可能会获得任何随机行的 ROWID 如果有人能阐明这一点