Kyl*_*cot 0 database postgresql uuid triggers
我有一个名为的表students从外部源填充.数据带有复合键,然后我想用它来生成UUID uuid_generate_v5.我现在正在这样做
UPDATE students SET id = uuid_generate_v5(uuid_ns_url(), CONCAT(composite1, composite2));
Run Code Online (Sandbox Code Playgroud)
当有一行插入此表时,我有兴趣将其移动到触发器中.我该怎么做呢?
像未经测试的东西:
CREATE OR REPLACE FUNCTION my_trigger()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
BEGIN
NEW.uuid_col := uuid_generate_v5(uuid_ns_url(), CONCAT(NEW.composite1, NEW.composite2));
RETURN NEW;
END;
$$;
CREATE TRIGGER mytable_my_trigger
BEFORE INSERT ON mytable
FOR EACH ROW EXECUTE PROCEDURE my_trigger();
Run Code Online (Sandbox Code Playgroud)
但实际上,在PL/pgSQL的手动触发,并在CREATE TRIGGER文档应该真正让你有...