在使用Informix数据库插入之前创建触发器。 当我们尝试将记录插入表中时,应在字段之一中插入随机字母数字字符串。有内置功能吗?
该表包含以下字段:
empid serial NOT NULL
age int
empcode varchar(10)
我正在跑步
insert into employee(age) values(10);
预期输出应如下所示:
id age empcode
1, 10, asf123*
感谢您的帮助。
答案 0 :(得分:1)
如上所述,尚无创建随机字符串的功能,但是可以生成随机数,然后将其转换为字符。要创建随机数,您可以为C函数(例如random()
)创建UDR包装器,也可以注册excompat datablade并使用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列。