Вопрос про sql
Feb. 11th, 2008 05:00 pmА как можно в одно SQL выражение в pg8, либо insert'нуть либо update'нуть строку в таблице, в зависимости от того есть ли уже строка с таким же значением в ключевом поле...
Если говорить на неком свободном диалекте, то хочется следующего:
MY_NAME=?;
MY_VALUE=?;
if count (select * from MY_TABLE where NAME=MY_NAME)>0
{
UPDATE NY_TABLE SET VALUE=MY_VALUE WHERE NAME=MY_NAME;
} else
{
insert into MY_TABLE (NAME, VALUE) values (MY_NAME, MY_VALUE);
};
Наверное это можно сделать на каком-нибудь PL/pgSQL.
А имеет ли смысл это делать там, или всю логику можно вынести во внешний перл, и не потерять ничего?
Если говорить на неком свободном диалекте, то хочется следующего:
MY_NAME=?;
MY_VALUE=?;
if count (select * from MY_TABLE where NAME=MY_NAME)>0
{
UPDATE NY_TABLE SET VALUE=MY_VALUE WHERE NAME=MY_NAME;
} else
{
insert into MY_TABLE (NAME, VALUE) values (MY_NAME, MY_VALUE);
};
Наверное это можно сделать на каком-нибудь PL/pgSQL.
А имеет ли смысл это делать там, или всю логику можно вынести во внешний перл, и не потерять ничего?