Ошибка конструкции IF

Здравствуйте. Очень плохо разбираюсь в sql запросах, задача стоит искать строки в таблице по некоему идентификатору и если строка найдена изменять данные, иначе создавать новую строку:
в microsoft sql ( в котором я разбираюсь также как и в postgreSQL, то есть плохо) написал запрос :

IF NOT EXISTS (SELECT * FROM Sale_List WHERE id= 1)
BEGIN 
INSERT INTO Sale_List VALUES (1,732,'новый товар','новый товар',16,1,0,14,14)
END
ELSE
BEGIN 
UPDATE Sale_List SET codeproduct=732,nameproduct=новый товар',fullname='новый товар',cena1=16,cena2=1,cena3=0,cena4=14,cena5=14 where id =1
END

он нормально отрабатывает и результат меня устраивает.

Пытаюсь выполнить подобное на postgre и получаю ошибку "ERROR: syntax error at or near "if";"
гуглю по ошибке и мало понятно из-за моих убогих знаний. На сколько я понял это нужно выполнять в функции... Может кто то подсказать как исправить запрос?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Читайте

Читайте документацию:
http://postgresql.ru.net/manual/plpgsql.html
в частности про IF:
http://postgresql.ru.net/manual/plpgsql-control-structures.html#PLPGSQL-...

Примеры есть, думаю разберётесь

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023