UPSERT ifisser "daħħal, jew aġġorna jekk diġà jeżisti." PostgreSQL jimplimenta dan b'INSERT ... ON CONFLICT — daħħal ringiela, imma jekk ikun jikser kostraint uniku, minflok iggorna l-ringiela eżistenti (jew ma tagħmilx xejn). Jiġġestixxi l-ħtieġa komuni ta' "daħħal-jew-aġġorna" b'mod atomiku.
Il-problema li UPSERT issolvi
You want to insert a row, but it might already exist (by a unique key):
❌ a plain INSERT fails with a unique-violation error if it exists
❌ check-then-insert (SELECT, then INSERT or UPDATE) has a RACE CONDITION
(another transaction could insert between your check and insert)
→ ON CONFLICT does it atomically in ONE statement (no race condition)
