Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在Oracle数据库中创建唯一ID_Database_Oracle_Database Design_Oracle11g - Fatal编程技术网

Database 在Oracle数据库中创建唯一ID

Database 在Oracle数据库中创建唯一ID,database,oracle,database-design,oracle11g,Database,Oracle,Database Design,Oracle11g,总是在Oracle数据库中创建唯一的ID是否更可取?我知道Oracle数据库会自动创建一个唯一的字段ROWID,但是,如果由于性能问题而重新组织数据库,我的所有rowid是否都会被更改/重组,这样我在其他应用程序中使用的id就会被破坏?在使用任何关系数据库时,如果数据自然不包含唯一的值或值的组合,则应该创建唯一的人工键。Oracle ROWID对数据库中的物理地址进行编码,因此不应将其存储在表中。ROWID仅保证在单个事务的持续时间内保持不变。数据库上的各种类型的操作,包括分区键更新、闪回表操作

总是在Oracle数据库中创建唯一的ID是否更可取?我知道Oracle数据库会自动创建一个唯一的字段ROWID,但是,如果由于性能问题而重新组织数据库,我的所有rowid是否都会被更改/重组,这样我在其他应用程序中使用的id就会被破坏?

在使用任何关系数据库时,如果数据自然不包含唯一的值或值的组合,则应该创建唯一的人工键。Oracle ROWID对数据库中的物理地址进行编码,因此不应将其存储在表中。ROWID仅保证在单个事务的持续时间内保持不变。数据库上的各种类型的操作,包括分区键更新、闪回表操作和收缩表操作。以获取更多信息


分享和享受。

问题有点宽泛:一般来说,不要使用内部技术ID作为参考。甚至不在数据库的范围内,当然也不在数据库之外。自己创建功能ID。这取决于您的应用程序ROWID可以更改的情况更多。如果需要将行移动到其他块,则更新可以更改rowid