PostgreSQL unieke beperking

samenvatting: in deze tutorial leert u over PostgreSQL UNIQUE beperking om ervoor te zorgen dat waarden die zijn opgeslagen in een kolom of een groep kolommen uniek zijn over rijen in een tabel.

soms wilt u ervoor zorgen dat waarden die zijn opgeslagen in een kolom of een groep kolommen uniek zijn in de hele tabel, zoals e-mailadressen of Gebruikersnamen.

PostgreSQL biedt u de UNIQUE beperking die de uniciteit van de gegevens correct handhaaft.

wanneer een beperking UNIQUE aanwezig is, controleert elke keer dat u een nieuwe rij invoegt of de waarde al in de tabel staat. Het verwerpt de wijziging en geeft een fout als de waarde al bestaat. Hetzelfde proces wordt uitgevoerd voor het bijwerken van bestaande gegevens.

wanneer u een beperking UNIQUE toevoegt aan een kolom of een groep kolommen, zal PostgreSQL automatisch een unieke index aanmaken op de kolom of de groep kolommen.

PostgreSQL unieke beperking voorbeeld

het volgende statement maakt een nieuwe tabel aan met de naam person met een UNIQUE beperking voor de kolom email.

Code language: SQL (Structured Query Language) (sql)

merk op dat de UNIQUE beperking hierboven kan worden herschreven als een tabel beperking zoals getoond in de volgende query:

Code language: SQL (Structured Query Language) (sql)

voeg eerst een nieuwe rij in de person tabel met INSERT statement:

Code language: SQL (Structured Query Language) (sql)

ten tweede, voeg een andere rij in met dubbele e-mail.

Code language: SQL (Structured Query Language) (sql)

PostgreSQL gaf een foutmelding.

Code language: SQL (Structured Query Language) (sql)

een unieke beperking op meerdere kolommen

met PostgreSQL kunt u een beperking UNIQUE maken voor een groep kolommen met de volgende syntaxis:

Code language: SQL (Structured Query Language) (sql)

de combinatie van waarden in kolom c2 en c3 zal uniek zijn voor de hele tabel. De waarde van kolom c2 of c3 hoeft niet uniek te zijn.

unieke beperking toevoegen met behulp van een unieke index

soms wilt u een unieke beperking toevoegen aan een bestaande kolom of groep kolommen. Laten we eens kijken naar het volgende voorbeeld.

Stel eerst dat u een tabel met de naam equipment:

Code language: SQL (Structured Query Language) (sql)

ten tweede, Maak een unieke index op basis van de kolom equip_id.

Code language: SQL (Structured Query Language) (sql)

Ten derde, voeg een unieke beperking toe aan de equipment tabel met behulp van de equipment_equip_id index.

Code language: SQL (Structured Query Language) (sql)

merk op dat de verklaring ALTER TABLE een exclusief slot op de tafel verwerft. Als u nog lopende transacties hebt, wacht het tot alle transacties zijn voltooid voordat de tabel wordt gewijzigd. Daarom moet u de tabel pg_stat_activity controleren om de huidige lopende transacties te zien met behulp van de volgende query:

Code language: SQL (Structured Query Language) (sql)

u moet naar het resultaat kijken om de kolom state met de waarde idle in transactionte vinden. Dat zijn de transacties die in afwachting zijn om te voltooien.

in deze tutorial hebt u geleerd over UNIQUE beperkingen en hoe u ze kunt gebruiken om waarden af te dwingen die zijn opgeslagen in een kolom of een groep kolommen die uniek zijn voor rijen binnen dezelfde tabel.

  • was deze tutorial nuttig ?
  • YesNo



+