🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
2 messages
2 total messages Started by Steven Sat, 03 Feb 2007 15:21
unique or empty
#563
Author: Steven
Date: Sat, 03 Feb 2007 15:21
17 lines
1680 bytes
Hallo,


in de meeste databases kan je aangeven of een veld UNIQUE moet zijn. 
Bestaat er ook zoiets als "UNIQUE OR EMPTY" ? Dwz ofwel is het veld 
leeg, ofwel is het ingevuld, en dan moet het uniek zijn. Voorbeeld van 
het mogelijk gebruik is het gebruik van rijksregisternummer in een 
database. Als je het niet weet van iemand laat je het leeg, maar als je 
het wel weet, dan is het uniek. Zodoende kunnen er meerdere records zijn 
met rijksregisternummer leeg.

Uiteraard zal dit wel database afhankelijk zijn, maar zijn er databases 
die dit soort van uniciteit ondersteunen?

Groetjes,

Steven
Re: unique or empty
#565
Author: joris.spriet
Date: Mon, 05 Feb 2007 14:53
32 lines
2247 bytes
[...]
> in de meeste databases kan je aangeven of een veld UNIQUE moet zijn.
> Bestaat er ook zoiets als "UNIQUE OR EMPTY" ? Dwz ofwel is het veld
[...]

Hoi,

'k heb vroeger nog gewerkt met Oracle (als ik het goed voorheb 8i) en
als je daarin een unieke index constraint legt op een veld,
dan geldt dit enkel voor de niet-NULL velden.  Als ik me goed
herinner, kon je dat ook met PRIMARY KEY velden waar NULL waarden
toegestaan waren (maar 'k weet het niet meer zeker - check
documentatie).

Dat was Oracle.

Postgres (7.3 - ik kom wat achter) heeft hetzelfde gedrag als Oracle,
ttz NULL waarden worden als niet gelijk beschouwd.

Bij MS SQL Server 2000/2005 kun je dit niet (al is de on-line
documentatie verwarrend).

Enfin.  't Hangt dus af van het "merk" van database of en hoe je dit
kunt realizeren, al zal 't overal wel een beetje 't zelfde zijn.

Oracle en Postgres volgen hier de SQL-92 standaard (die zegt dat als
je NULL met NULL vergelijkt, dit altijd op 'false' uitdraait),
MS SQL Server dus niet...

mvg,

Joris
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads