This commit is contained in:
24
help/随机id生成
Normal file
24
help/随机id生成
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- 生成 8 位随机不重复 ID 函数
|
||||||
|
CREATE OR REPLACE FUNCTION next_8digit_rand_id(seq_name regclass)
|
||||||
|
RETURNS integer AS $$
|
||||||
|
DECLARE
|
||||||
|
base_val bigint;
|
||||||
|
rand8id integer;
|
||||||
|
BEGIN
|
||||||
|
base_val := nextval(seq_name);
|
||||||
|
rand8id := (10000000 + ((base_val * 1234567 # floor(random() * 99999999))::bigint % 90000000))::integer;
|
||||||
|
RETURN rand8id;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql VOLATILE;
|
||||||
|
|
||||||
|
-- 给 base_sys_user 绑定 8 位随机ID
|
||||||
|
ALTER TABLE base_sys_user
|
||||||
|
ALTER COLUMN id
|
||||||
|
SET DEFAULT next_8digit_rand_id('base_sys_user_id_seq');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE base_sys_user
|
||||||
|
ALTER COLUMN id
|
||||||
|
SET DEFAULT nextval('base_sys_user_id_seq');
|
||||||
Reference in New Issue
Block a user