在postgresql中创建函数不进行插入

在postgresql中创建函数不进行插入,sql,postgresql,Sql,Postgresql,cursreg返回“continguts”上所有在classcont上没有寄存器的行。(这没关系) 但是我需要在“classcont”中为每个结果插入函数接收的int(classificado int) CREATE OR REPLACE FUNCTION fclassifica(clasificado int) RETURNS void AS $$ DECLARE registre RECORD; cursreg CURSOR FOR SELECT c.idcontingut

cursreg返回“continguts”上所有在classcont上没有寄存器的行。(这没关系) 但是我需要在“classcont”中为每个结果插入函数接收的int(classificado int)

CREATE OR REPLACE FUNCTION fclassifica(clasificado int) RETURNS void AS $$
DECLARE
registre RECORD;
        cursreg CURSOR FOR SELECT c.idcontingut FROM continguts as c
WHERE NOT EXISTS (SELECT * FROM classcont as ca
WHERE c.idcontingut = ca.contingut);
BEGIN
OPEN cursreg;
LOOP
FETCH FROM cursreg INTO registre;
INSERT INTO classcont (class,contingut)
VALUES (clasificado, registre.idcontingut);
RAISE NOTICE 'La classificació de ID ha estat modificada' ;

END LOOP;
CLOSE cursreg;
RETURN ;
END;
$$ LANGUAGE plpgsql;

不需要游标,甚至不需要PL/pgSQL

CREATE OR REPLACE FUNCTION fclassifica(p_clasificado int) 
  RETURNS void 
AS
$$
  INSERT INTO classcont (class, contingut)
  select p_clasificado, c.idcontingut
  FROM continguts as c
  WHERE NOT EXISTS (SELECT * 
                    FROM classcont as ca
                    WHERE c.idcontingut = ca.contingut);
$$
language sql;