sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur uppror man i Postgres om konflikt på en av två kolumner?

Ja, och detta beteende är standard. Varje överträdelse av unika begränsningar utgör en konflikt och sedan UPDATE utförs om ON CONFLICT DO UPDATE är specificerad. INSERT sats kan bara ha en enda ON CONFLICT satsen, men conflict_target i den satsen kan ange flera kolumnnamn som var och en måste ha ett index, till exempel en UNIQUE begränsning. Du är dock begränsad till en enda conflict_action och du kommer inte att ha information om vilken begränsning som orsakade konflikten när du bearbetar den åtgärden. Om du behöver den typen av information, eller specifik åtgärd beroende på begränsningsöverträdelsen, bör du skriva en triggerfunktion men då förlorar du den avgörande atomiciteten i INSERT ... ON CONFLICT DO ... uttalande.



  1. Hur ställer jag in tidszonen xampp mysql och apache?

  2. Hur kan VBA ansluta till MySQL-databas i Excel?

  3. ActiveRecord gruppantal med nollor

  4. Forcera identifierare skiftlägeskänslighet i Oracle