sql >> Database teknologi >  >> RDS >> PostgreSQL

Tillad null i unik kolonne

Dette er en misforståelse.
Den UNIQUE begrænsning gør præcis hvad du ønsker. Flere NULL værdier kan eksistere side om side i en kolonne defineret UNIQUE .

Manualen:

Generelt overtrædes en unik begrænsning, når der er mere end én række i tabellen, hvor værdierne for alle kolonnerne, der er inkluderet i begrænsningen, er ens. To nulværdier anses dog ikke for at være ens i denne sammenligning. Det betyder, at selv i tilstedeværelsen af ​​en unik begrænsning er det muligt at gemme duplikerede rækker, der indeholder en nulværdi i mindst én af de begrænsede kolonner. Denne adfærd er i overensstemmelse med SQL-standarden, men vi har hørt, at andre SQL-databaser muligvis ikke følger denne regel. Så vær forsigtig, når du udvikler applikationer, der er beregnet til at være bærbare.

Fed fremhævelse mine.

Vær opmærksom på, at tegntyper tillader en tom streng ('' ), hvilket ikke er en NULL værdi og ville udløse en unik overtrædelse ligesom enhver anden ikke-nul værdi, når den indtastes i mere end én række.



  1. Problem med insert-forespørgsel i Sqlite?( variabel indsættelse)

  2. Hvordan installerer jeg kun klientværktøjerne til PostgreSQL på Windows?

  3. Sådan konverteres mellem datoformater i SQL Server ved hjælp af CAST()

  4. Hvad har poker, blackjack, Belot og Préférence med databaser at gøre?