使用sql如何插入数据,但如果它';已存在更新数据
我想添加它-如果存在更新或插入 所以,插入是有效的,但我只想插入新值,若这个东西已经在这里,我想更新它。我这里的代码只插入数据,不知道什么使用sql如何插入数据,但如果它';已存在更新数据,sql,upsert,Sql,Upsert,我想添加它-如果存在更新或插入 所以,插入是有效的,但我只想插入新值,若这个东西已经在这里,我想更新它。我这里的代码只插入数据,不知道什么 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
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
如果您使用的是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)
不太清楚你的“新”价值观来自哪里。。。但是我希望你能明白你的问题不清楚。请提供示例数据、所需结果和适当的数据库标记。请提高问题的质量。我个人不明白你的问题是什么。你使用的是哪种DBMS产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。在Postgres中,您可以使用
insert。。关于冲突…
。有关其他可能的解决方案,请参阅