繁体   English   中英

在数据库中使用rowid有任何不利之处吗?

[英]Is there any disadvantage to use rowid in database?

如标题所述,在应用程序中访问数据库时,使用rowid有任何不利之处吗?

尽管rowid唯一地标识表中的行,但是如果基础表是索引组织表分区表 ,它可能会更改其值。

此外,如果使用EXP / IMP导出和导入表,则行标识符也会更改。

这意味着,不应将rowid存储起来,以备将来再次使用,因为相应的行可能不存在或包含完全不同的数据。

不能保证特定行的RowId保持不变,因此最好改用主键。

您可以在应用程序中使用ROWID来查找您在同一会话的前面正在查看的记录。 通常,这将是最快的记录方式。

但是,您永远不应该将Rowid存储在数据库中或其他任何位置,因为从备份中还原等可以更改ROWID。

如果您使用的是Oracle,请使用UROWID (通用ROWID),因为它将在会话期间ROWID可能发生变化的表(例如在索引组织表上)停止使用Physical ROWID,并开始使用Logical ROWID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM