2015-04-01 82 views
0

從a1.t1 +價值觀,我有2個表
科目(sub_id,sub_title,dep_id ...)
部門(dep_id,dep_name ...)功能插入new.values PostgreSQL的

我功能有記錄的新課題(「數學」),以及dep_id相應的(其中dep_name =科學版),然後返回一個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; 

回答

0
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; 

更好的做一個子查詢。