Re: What am I doing wrong here?
От | Ray O'Donnell |
---|---|
Тема | Re: What am I doing wrong here? |
Дата | |
Msg-id | d415686c-9496-53cc-a2e8-7c8c7af84090@rodonnell.ie обсуждение исходный текст |
Ответ на | What am I doing wrong here? (stan <stanb@panix.com>) |
Ответы |
Re: What am I doing wrong here?
|
Список | pgsql-general |
On 26/12/2019 13:36, stan wrote: > IF _bom_name_key is NULL > THEN > WITH inserted AS ( > INSERT into project_bom > (project_key, bom_name) > VALUES > (NEW.project_key , 'Main') > RETURNING > project_bom_key > ) > /* Syntax error flagged at this line */ > _bom_name_key = ( SELECT > project_bom_key > FROM inserted ) > ; > ELSE > NEW.project_bom_key = _bom_name_key; > END IF; > END IF; You need to use the SELECT INTO syntax: with inserted as ( .... ) select project_bom_key into _bom_name_key from inserted (etc) Likewise, while I don't think there's anything wrong with the earlier assignment - _bom_name_key := (select....); - to my eye the SELECT INTO looks more natural: select project_bom_key into _bom_name_key from ... (etc). It's a PL/pgSQL construct - full details here: https://www.postgresql.org/docs/12/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW I hope that this helps. Ray. -- Raymond O'Donnell // Galway // Ireland ray@rodonnell.ie
В списке pgsql-general по дате отправления: