sql >> Database >  >> RDS >> PostgreSQL

Postgresql:Unieke beperking over Unie van 2 kolommen

U kunt een uitsluitingsbeperking gebruiken waarvoor slechts een enkele index nodig is:

alter table transaction_links
  add constraint check_tx
  exclude using gist ( (array[send_id, receive_id]) with &&);

De && operator is de "overlap"-operator voor arrays - wat betekent "elementen gemeen hebben, ongeacht de volgorde van de elementen in de array. In dit geval verhindert de beperking het invoegen van een rij waar een waarde van (send_id, receive_id) verschijnt in een andere rij van de tabel (ongeacht de kolom).

U hebt echter de intarray nodig extensie daarvoor.

Online voorbeeld:https://rextester.com/QOYS23482




  1. Vervang null-waarden in sql met behulp van de select-instructie in mysql?

  2. SQL selecteer max(datum) en bijbehorende waarde

  3. 'mysqldump' wordt niet herkend als een interne of externe opdracht

  4. Uw databases bewaken met MySQL Enterprise Monitor