W.M*_*.M. 1 postgresql stored-procedures insert random functions
我有这个生成随机字符串的语句:
SELECT string_agg (substr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', ceil (random() * 62)::integer, 1), '')
FROM generate_series(1, 20);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在函数内实现此功能,该函数会将上述语句的值自动分配给url_prefix创建新记录时命名的字段(on INSERT's)?
您可以创建一个函数并将其用作该列的默认函数:
Run Code Online (Sandbox Code Playgroud)create function f() returns text language sql as $$ SELECT string_agg (substr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', ceil (random() * 62)::integer, 1), '') FROM generate_series(1, 20) $$; create table foo(id serial primary key, url_prefix text not null default f()); insert into foo default values;
Run Code Online (Sandbox Code Playgroud)select * from foo;编号 | 网址前缀 -: | :-------------------- 1 | iByDaJ2h4JHi3dI3uBoy
db<>在这里摆弄
| 归档时间: |
|
| 查看次数: |
8495 次 |
| 最近记录: |