我有一个表,在插入时,我使用触发器用随机字符串填充列random_key
。
此列具有唯一约束,但理论上触发器生成的随机字符串可能不唯一,并且不会插入记录。
有没有办法在触发器中避免这种情况?或者我是否必须创建插入程序?
编辑(从评论中复制并详细说明)
我在这个表中有一个普通的id,但是对于外部使用(因特网)我需要一个完全随机的id,因此不能猜出表中下一行的id。
使用id +常量进行盐析可能会起作用。我会考虑一下。
到目前为止,根据答案判断,似乎没有简单的解决方案来避免触发器中的重复。这也是一个答案。 :)
答案 0 :(得分:3)
您可以使用SYS_GUID功能。这将返回一个唯一的字符串。
SQL> select sys_guid() from dual;
SYS_GUID()
--------------------------------
D24FC8257402951BE0401AA2C9997E18