在Oracle表中使用SYS_GUID()作为唯一ID是否安全?

时间:2014-12-07 18:09:40

标签: oracle11g guid

我有以下表DDL。我可以安全地使用ROWKEY来唯一地标识一行吗?我不想使用Sequence / On-Insert触发器。

CREATE
TABLE T_SEGMENT
(
    SEGMENT_NAME VARCHAR2(15),
    ROWKEY VARCHAR2(50) DEFAULT sys_guid()
)

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您要求" sys_guid()保证返回唯一值",是的。好吧,几乎是 - GUID的一部分是随机数生成器的结果,所以理论上你可能会得到一个副本,这是非常不可能的。

当然,如果您使用GUID来唯一标识行,那么将rowkey定义为主键是有意义的,并且将该键作为表中的第一列是有意义的