Toon posts:

[oracle] Check constraint voor hele getallen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik kan nergens op het net vinden hoe ik een check constraint voor getallen groter dan 1 en het moet een heel getal, kan vinden. Ik heb tot dusver:
aantal >= 1

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Misschien het veld integer maken? Waardoor je automatisch gehele getallen krijgt...

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

aantal >= 1
and aantal = trunc(aantal)

Who is John Galt?


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:20

JaQ

justmental schreef op 05 juni 2003 @ 02:19:
aantal >= 1
and aantal = trunc(aantal)
leuk dat je hier trunc gebruikt en in een ander topic aanraad om ultrasearch te gebruiken ivm performance. trunc is per definitie trager dan round(aantal,0)
gebruik nooit, maar dan bedoel ik dus ook NOOIT trunc in een query, tenzij je er bewust voor kiest om geen index te gebruiken of als je graag ruzie met een DBA maakt.

De reden waarom trunc geen vriend is (ook geen index gebruik bij de insert, dus hoezo primary key controleren over de pk_index??) Mensen die met Oracle werken en nog steeds trunc gebruiken moeten echt rechtstreeks ge-executeerd worden. (ja, hier spreekt een gefrustreerd persoon, heb net te veel shit van mensen die tkprof niet kennen moeten oplossen)

Het meest verstandige is een integer veld, of round. Bij voorkeur een integer, of anders round als je je verveeld en graag triggers wilt schrijven.

Egoist: A person of low taste, more interested in themselves than in me


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

DrFrankenstoner schreef op 05 June 2003 @ 03:06:
leuk dat je hier trunc gebruikt en in een ander topic aanraad om ultrasearch te gebruiken ivm performance. trunc is per definitie trager dan round(aantal,0)
gebruik nooit, maar dan bedoel ik dus ook NOOIT trunc in een query, tenzij je er bewust voor kiest om geen index te gebruiken of als je graag ruzie met een DBA maakt.

De reden waarom trunc geen vriend is (ook geen index gebruik bij de insert, dus hoezo primary key controleren over de pk_index??) Mensen die met Oracle werken en nog steeds trunc gebruiken moeten echt rechtstreeks ge-executeerd worden. (ja, hier spreekt een gefrustreerd persoon, heb net te veel shit van mensen die tkprof niet kennen moeten oplossen)
Ik begrijp dat je met wat performance issues te maken hebt gehad, maar aangezien deze hier niet relevant zijn kun je die beter ook niet noemen.
De TS blijft nu wellicht in twijfel achter terwijl mijn suggestie gewoon valide is.

Het gaat hier om een check constraint, niet om een query.
De waarden zijn al bekend, er hoeft geen index gebruikt te worden om ze op te zoeken.
Het meest verstandige is een integer veld, of round. Bij voorkeur een integer, of anders round als je je verveeld en graag triggers wilt schrijven.
Er zijn vele andere oplossingen met allen eigen voor- en nadelen, welke het handigst is hangt af van de omgeving.

offtopic:
Overigens kun je trunc rustig in query's gebruiken zolang het aan de rechterkant van de vergelijking is en je geen automatische conversie op de linkerkant forceert.

Who is John Galt?