Vinnaren i pepparkakshustävlingen!
2008-12-20, 13:06
  #1
Avstängd
fläskbaks avatar
Anta att man vill stoppa in datum i en tabell. Varje datum har ett id och en date. Men man vill bara stoppa in de datum i tabellen som ännu inte finns i tabellen. Alltså datum vars date-värde inte redan finns i något datum tabellen. Hur bör man gå tillväga för att lösa detta?
__________________
Senast redigerad av fläskbak 2008-12-20 kl. 14:01.
Citera
2008-12-20, 13:49
  #2
Medlem
ptskyonaus avatar
Enklast är kanske att sätta en UNIQUE constraint på date, och sedan ta hand om felmeddelandet i klientprogrammet. Man kan såklart låta programmet kolla om det date man vill sätta in redan finns med, men det är nog bättre att överlåta sådant åt databasen...
Citera
2008-12-20, 14:03
  #3
Avstängd
fläskbaks avatar
Vad händer egentligen om man sätter värdena till UNIQUE? Kommer det upp felmeddelanden som kommer störa applikationen om man försöker stoppa in dubbelvärden eller kommer bara dubbelvärdena slängas och inte användas?
Citera
2008-12-20, 14:17
  #4
Medlem
ptskyonaus avatar
DBMS:et kommer att ge ett felmeddelande, men beroende på vilket språk du använder till klienten borde det gå att fånga och hantera det.

EDIT: Men om det verkar bli onödigt besvärligt, och det inte är till något jätteviktigt, är det garanterat enkelt att i programmet ha en fråga som räknar antal rader där date är lika med det date man vill sätta in, och låta bli ifall det finns en sådan rad.
__________________
Senast redigerad av ptskyonau 2008-12-20 kl. 14:27.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback