saf*_*yia 2 java sql postgresql upsert
我在做一个INSERT用ON CONFLICT用java postgre。有什么方法可以确定是executeUpdate插入行还是更新行?
您可以查看“ 系统”列xmax来说明不同之处。0在这种情况下,它用于插入的行。
CREATE TABLE tbl(id int PRIMARY KEY, col int);
INSERT INTO tbl VALUES (1, 1);
Run Code Online (Sandbox Code Playgroud)
INSERT INTO tbl(id, col)
VALUES (1,11), (2,22)
ON CONFLICT (id) DO UPDATE
SET col = EXCLUDED.col
RETURNING *, (xmax = 0) AS inserted;Run Code Online (Sandbox Code Playgroud)
这是建立在未记录的实现细节上的,该细节可能在将来的版本中更改(即使不太可能)。它适用于Postgres 9.5和9.6。
它的优点:您不需要引入其他列。
详细说明:
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |