sql >> Database >  >> RDS >> PostgreSQL

Unieke waardebeperking voor meerdere kolommen

Dit kun je niet zomaar doen. De least() /greatest() aanpak zal niet in alle gevallen werken.

Postgres heeft een aantal mooie indexbewerkingen. Maar de beste manier is om een ​​verbindingstabel te gebruiken. Bijvoorbeeld:

create table userPhones (
    userPhoneId bigint primary key ,
    userId bigint references users(id),
    phone_counter int check (phone_counter in (1, 2)),
    phone varchar,
    unique (userId, phone_counter),
    unique(phone)
);

Dit beperkt ook het aantal telefoonnummers tot 2 voor elke gebruiker.



  1. Kolomrechten retourneren van een gekoppelde server in SQL Server (T-SQL-voorbeelden)

  2. voorlaatste rij van een tabel mysql

  3. Toon afdelingsnamen met behulp van cursors. Maak een PL/SQL-blok om alle afdelingsnamen uit de afdelingstabel weer te geven met behulp van cursors

  4. MySql, PHP-weergave Afbeelding op HTML