Oracle - 为 table 的每一行生成唯一的随机 varchar 值
Oracle - generate unique random varchar values for each row of a table
我必须用随机值更新 table 中的 'varchar2' 列,但要注意的是该列是用 'unique' 约束定义的,因此我得到了错误说 "Unique constraint violated".
有人可以帮忙吗
谢谢
您可以使用 DBMS_RANDOM
包创建随机值并将其插入 table 中,如下所示
INSERT INTO table_name(unique_col) values (DBMS_RANDOM.string('a',n);
这里n可以是table的最大值。有关详细信息,请参阅此处 http://oracle-base.com/articles/misc/dbms_random.php
生成的值将是unique
取决于值的长度
您还没有对这些值可能是什么给出任何限制,那么为什么不将其设置为一组已知的唯一值,例如整数:
UPDATE table_name SET unique_col = TO_CHAR(ROWNUM);
我必须用随机值更新 table 中的 'varchar2' 列,但要注意的是该列是用 'unique' 约束定义的,因此我得到了错误说 "Unique constraint violated".
有人可以帮忙吗
谢谢
您可以使用 DBMS_RANDOM
包创建随机值并将其插入 table 中,如下所示
INSERT INTO table_name(unique_col) values (DBMS_RANDOM.string('a',n);
这里n可以是table的最大值。有关详细信息,请参阅此处 http://oracle-base.com/articles/misc/dbms_random.php
生成的值将是unique
取决于值的长度
您还没有对这些值可能是什么给出任何限制,那么为什么不将其设置为一组已知的唯一值,例如整数:
UPDATE table_name SET unique_col = TO_CHAR(ROWNUM);