Rah*_*hul 6 postgresql constraints upsert postgresql-9.5
在MySQL中,我们可以在任何约束违规时执行以下操作
INSERT INTO table {setters} ON DUPLICATE KEY UPDATE {setters}
Run Code Online (Sandbox Code Playgroud)
在Postgres有没有这样做呢?
INSERT INTO table {setters} ON CONFLICT(*) DO UPDATE {setters}
Run Code Online (Sandbox Code Playgroud)
注意:*=任何可能的密钥
为什么这是一个重要的特征?
当然。PostgreSQL 9.5+允许您通过以下方式执行此操作:
查询MySQL:
INSERT INTO tablename (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
Run Code Online (Sandbox Code Playgroud)
变为PostgreSQL:
INSERT INTO tablename (a, b, c) values (1, 2, 10)
ON CONFLICT (a) DO UPDATE SET c = tablename.c + 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |