Я использую postgresql 9.3.
Я хочу создать функцию для обновления моей таблицы (flag = '9') и вставки новой записи (flag = '0') с номером rfidnumber, указанным в параметре,
Этот параметр может иметь несколько значений, разделенных пробелом (т. Е. 11 22 33 44)
CREATE OR REPLACE FUNCTION public.fcreate_rfid (
znumber varchar
)
RETURNS boolean AS
$body$
BEGIN
--update old record which has the same rfid number and flag='9' if exists
update tblrfid set flag='9' where flag='0' and rfidnumber in (znumber);
-- generate new record
insert into tblrfid(tanggal, flag, rfidnumber)
select localtimestamp, '0', regexp_split_to_table(znumber, ' ');
return true;
END;
$body$
LANGUAGE 'plpgsql';
, когда я вызываю эту функцию, используя:
select fcreate_rfid('11 22 33 44');
Эта функцияне удается обновить старую запись, но успешно вставить новую запись.
Помогите мне исправить эту проблему.Я знаю, что проблема в команде обновления, но я просто не знаю, как ее исправить.