с sql как я могу вставить данные, но если они уже существуют, обновите данные - PullRequest
0 голосов
/ 17 марта 2020

Я хочу добавить его - если существует обновление, еще вставить!

, чтобы вставка работала, но я хочу вставить только новое значение, и если что-то уже здесь, я хочу обновить его. мой код здесь только вставляет данные без метра, что

BEGIN
DECLARE das int;
SELECT dasaxeleba.id INTO das FROM dasaxeleba WHERE dasaxeleba.barcode = NEW.barcode;
INSERT INTO sawyobi(das_id,raodenoba,tvitgirebuleba,gasayidi1,gasayidi2) 
VALUES(das,new.raodenoba,new.fasi,new.gasayidi1,new.gasayidi2);
END

1 Ответ

0 голосов
/ 18 марта 2020

если вы используете oracle, то вы можете использовать что-то вроде этого:

       merge into sawyobi tgt
        using (select id
                 from dasaxeleba
                where barcode = NEW.barcode) src on (tgt.das_id = src.id)
 when matched then update set
              raodenoba = new.raodenoba,
              tvitgirebuleba = new.fasi,
              gasayidi1 = new.gasayidi1,
              gasayidi2 = new.gasayidi2
     when not matched then insert
              (das_id,
               raodenoba,
               tvitgirebuleba,
               gasayidi1,
               gasayidi2)
       values (src.id,
               new.raodenoba,
               new.fasi,
               ew.gasayidi1,
               new.gasayidi2)

не совсем уверен, откуда берутся ваши "новые" значения ... но я надеюсь, что вы поняли идею

...