在数据库中使用rowid有什么不利吗?

时间:2009-03-25 05:48:47

标签: database

如上所述,在应用程序中访问数据库时,使用rowid有什么不利之处吗?

3 个答案:

答案 0 :(得分:3)

虽然rowid唯一标识表中的行,但如果基础表为index organized tablepartitioned table,则可能会更改其值。

此外,如果使用EXP / IMP导出和导入表格,则rowid会更改。

这意味着不应存储rowid以供以后重复使用,因为相应的行可能不存在或包含完全不同的数据。

答案 1 :(得分:1)

对于特定行,不保证RowId保持不变,因此最好使用主键。

答案 2 :(得分:0)

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

但是,你永远不应该做的就是将这个Rowid存储在数据库中 - 或者其他任何地方 - 因为从备份中恢复等等可以改变ROWID。

如果您正在使用Oracle,请使用UROWID - Universal ROWID - 因为这将停止使用Physical ROWID并开始在会话期间ROWID可能更改的表上使用逻辑ROWID,例如在组织的索引上表