Tom*_*mmy 3 postgresql postgresql-9.6
在“ Insert ... On Conflict”语句中使用相同的值时,可以简化语法吗?
INSERT INTO cars
(car_id, car_type, car_model)
values
(1, 'tesla', 'model s')
ON CONFLICT (car_id) DO UPDATE SET
car_type = 'tesla',
car_model = 'model s';
Run Code Online (Sandbox Code Playgroud)
有更多此类声明,因为它们是脚本的一部分,该脚本在每次应用程序更新时都会运行。
基本上,我正在寻找一种方法来两次不指定相同的值。
使用excluded关键字:
INSERT INTO cars
(car_id, car_type, car_model)
values
(1, 'tesla', 'model s')
ON CONFLICT (car_id) DO UPDATE SET
car_type = excluded.car_type,
car_model = excluded.car_model;
Run Code Online (Sandbox Code Playgroud)
这也可以正确地用于多行,例如:
INSERT INTO cars
(car_id, car_type, car_model)
values
(1, 'tesla', 'model s'),
(2, 'toyota', 'prius')
ON CONFLICT (car_id) DO UPDATE SET
car_type = excluded.car_type,
car_model = excluded.car_model;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |