我需要创建一个查询,该查询在some know value存在的情况下进行更新,或者在不存在的情况下创建一个寄存器。

我在下面尝试了一些类似的变体,但无法使用。

我怎样才能做到这一点?

临时:

UPDATE OR INSERT
    mytable
SET
    attribute1 = 'value1',
    attribute2 = 'value2',
    attribute3 = 'some known value'
WHERE
    attribute3 = 'some known value'

最佳答案

@GarouDan您的传递仅用于更新查询,而在下面的代码中不使用插入查询。
首先发现是否有任何记录具有attribute3 =“一些已知值” ..

declare xattribute text;
select attribute3 into xsttribute where attribute3 = 'some known value'
if found
UPDATE  mytable
SET
    attribute1 = 'value1',
    attribute2 = 'value2',
    attribute3 = 'some known value'
WHERE
    attribute3 = 'some known value'
else
 insert into mytable(attribute1 ,attribute3 ,attribute3 ) values (value1,value2,some known value)

10-07 15:10