Здравствуйте. Очень плохо разбираюсь в 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-...
Примеры есть, думаю разберётесь