Oracle - 为表的每一行生成唯一的随机varchar值

时间:2015-02-26 10:11:16

标签: oracle random unique-constraint varchar2

我必须使用随机值更新表中的'varchar2'列,但问题是该列是使用'unique'约束定义的,因此我得到的错误是“违反了唯一约束”。

请有人帮忙。

由于

2 个答案:

答案 0 :(得分:1)

您没有对值可能有什么限制,所以为什么不将它设置为一组已知的唯一值,例如整数:

UPDATE table_name SET unique_col = TO_CHAR(ROWNUM);

答案 1 :(得分:0)

您可以使用DBMS_RANDOM包创建随机值,并在表格中插入相同的内容,如下所示

INSERT INTO table_name(unique_col) values (DBMS_RANDOM.string('a',n);

这里 n 可以是表的最大值。有关详细信息,请参阅此处http://oracle-base.com/articles/misc/dbms_random.php

生成的值将为unique,具体取决于值的长度