大佬教程收集整理的这篇文章主要介绍了postgresql – Postgres INSERT ON CONFLICT DO UPDATE vs INSERT或UPDATE,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
create table stock_price_alert ( stock_price_id integer references stock_price (id) on delete cascade not null,fall_below_alert Boolean not null,rise_above_alert Boolean not null,PRIMARY KEY (stock_price_id) );
我需要:
1)INSERT记录(如果不存在)
-- query 1 INSERT INTO stock_price_alert (stock_price_id,fall_below_alert,rise_above_alert) VALUES (1,true,falsE);
2)updatE记录(如果存在)
-- query 2 updatE stock_price_alert SET fall_below_alert = true,rise_above_alert = false WHERE stock_price_id = 1;
首先,我需要在stock_price_alert表上发出SELECT查询,以决定是执行query(1)还是(2).
POSTGRes支持INSERT INTO TABLE ….关于冲突更新…:
-- query 3 INSERT INTO stock_price_alert (stock_price_id,falsE) ON CONFLICT (stock_price_id) DO updatE SET fall_below_alert = EXCLUDED.fall_below_alert,rise_above_alert = EXCLUDED.rise_above_alert;
而不是使用query(1)或(2),我总是可以使用query(3)?然后我不需要在先前和之前发出SELECT查询.它有助于简化代码.
但我想知道,这是最好的做法?查询(3)会导致性能问题或不必要的副作用吗?谢谢.
以上是大佬教程为你收集整理的postgresql – Postgres INSERT ON CONFLICT DO UPDATE vs INSERT或UPDATE全部内容,希望文章能够帮你解决postgresql – Postgres INSERT ON CONFLICT DO UPDATE vs INSERT或UPDATE所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。