存在更新不存在插入

<pre class="wp-block-code">```
WITH upsert AS (UPDATE tbl SET a = 2 WHERE a = 1 RETURNING tbl.*)
INSERT INTO tbl (a)
SELECT 1 WHERE NOT EXISTS( SELECT * FROM upsert )
RETURNING *

如果需要返回

```
WITH upsert AS (
  UPDATE tbl SET a = 2 
  WHERE a = 1 
  RETURNING tbl.*
), inserted AS (
  INSERT INTO tbl (a)
  SELECT 1 WHERE NOT EXISTS( SELECT * FROM upsert )
  RETURNING *
)
select *
from upsert
union all
select * 
from inserted
```
```