函数insert new.values+;postgresql上a1.t1中的值

函数insert new.values+;postgresql上a1.t1中的值,postgresql,function,insert,Postgresql,Function,Insert,我有两张桌子 受试者(副主任id、副主任职务、副主任id…) 部门(部门id、部门名称…) 我的函数必须记录一个新主题(“数学”)和相应的dep_id(其中dep_name=sciences),然后返回一个sub_id CREATE OR REPLACE FUNCTION insert_sujet (param_title varchar, dep_name varchar) RETURNS integer AS $$ INSERT INTO sujets (suj_id, suj_title,

我有两张桌子
受试者(副主任id、副主任职务、副主任id…)
部门(部门id、部门名称…)

我的函数必须记录一个新主题(“数学”)和相应的dep_id(其中dep_name=sciences),然后返回一个sub_id

CREATE OR REPLACE FUNCTION insert_sujet (param_title varchar, dep_name varchar)
RETURNS integer AS $$
INSERT INTO sujets (suj_id, suj_title, dep_id) 

SELECT NEW.dep_id FROM departements 
WHERE d.dep_name=$3
RETURNING suj_id, NEW;
$$ LANGUAGE 'plgsql' VOLATILE;
我知道这一点,但不明白如何将此函数与插入新值结合起来

CREATE OR REPLACE FUNCTION f_insert (p_r1, p_r2)
RETURNS integer AS $$
INSERT INTO table (r1, r2) VALUES ($1, $2)
RETURNING r1_id;
$$ LANGUAGE 'sql' VOLATILE;
最好进行子查询

CREATE OR REPLACE FUNCTION f_insert (p_r1, p_r2)
RETURNS integer AS $$
INSERT INTO table (r1, r2) VALUES ($1, (SELECT r2 INTO .. AS ... =$2)
RETURNING r1_id;
$$ LANGUAGE 'sql' VOLATILE;