在使用Informix数据库插入之前创建触发器。当我们尝试在表中插入记录时,它应该将随机的字母数字字符串插入到字段之一中。有内置功能吗?
该表包含以下字段:
empid serial NOT NULL
age int
empcode varchar(10)
而我正在跑步
insert into employee(age) values(10);
预期输出应如下所示:
id age empcode
1, 10, asf123*
任何帮助表示赞赏。
正如已经注释的那样,没有现有的函数来创建随机字符串,但是可以生成随机数,然后将它们转换为字符。要创建随机数,您可以为C函数(如random()
)创建UDR包装,或者注册excompat数据库并使用dbms_random_random()
函数。以下是用户定义函数的示例,该函数使用dbs_random_random()
函数生成ASCII字母数字字符串:
create function random_string()
returning varchar(10)
define s varchar(10);
define i, n int;
let s = "";
for i = 1 to 10
let n = mod(abs(dbms_random_random()), 62);
if (n < 10)
then
let n = n + 48;
elif (n < 36)
then
let n = n + 55;
else
let n = n + 61;
end if
let s = s || chr(n);
end for
return s;
end function;
然后可以从插入触发器调用此函数以填充表的empcode列。