有没有办法传入PL函数,调用它来提供默认值以及如何使用它,其余的插入值?
CREATE TABLE tokensStore (
id SERIAL PRIMARY KEY,
users INTEGER REFERENCES users(id),
genDate timestamp with time zone NOT NULL DEFAULT now(),
expDate timestamp with time zone NOT NULL DEFAULT now() + interval '24 hours',
token char(30) NOT NULL DEFAULT tokenGenerator(%%%INSERTED VALUES%%%)
);
而且我也不确定这是否是一种正确的方法,我不知道是否应该允许NULL值并生成一个生成令牌值的触发器。
问题是我不想在该列中允许空值。 而且我还希望使用返回值标记来生成类似
的插入INSERT tokensStore(user) VALUES (1) RETURNING token;
如果有人对此有很好的参考,我们将非常感激。
答案 0 :(得分:0)
你需要一个plpython触发器:
contains
示例用法:
MATCH (sub:Subject), (p:Programme {name: 'Bsc. Agriculture' })
WHERE sub.name IN ['Physics (CAPE)', 'Biology (CAPE)', 'Chemistry (CAPE)']
WITH p, COLLECT(sub) AS subs
CREATE (p)-[:requires]->(c: Combo {amt:1})
FOREACH(s IN subs | CREATE (c)-[:contains]->(s))
RETURN *
当然,使用触发器,您不需要create or replace function before_insert_on_tokensstore()
returns trigger language plpython3u as $$
id = TD["new"]["id"]
users = TD["new"]["users"]
TD["new"]["token"] = users * 100 + id
#
# TD["new"]["token"] = generate_token(users, id)
#
return "MODIFY"
$$;
create trigger before_insert_on_tokensstore
before insert on tokensstore
for each row execute procedure before_insert_on_tokensstore();
的默认值。