0
Insert ... On Conflict文で同じ値を使用すると構文を単純化できますか?InsertとUpdateで同じ値を持つPostgresSQL Upsert(競合時)
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';
これらのステートメントは、すべてのアプリケーションアップデートで実行されるスクリプトの一部であるため、さらに多くのステートメントがあります。
私は同じ値を2回指定しない方法を探しています。
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;
これはまた、複数の行で正しく動作します、例えば:
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;
これは偉大に見える – Tommy
@tommy:はい、残念ながら。 –