jogrba Skrevet 7. juni 2006 Del Skrevet 7. juni 2006 (endret) Hei, Jeg har til nå brukt MySQL og har vært fornøyd med det, men jeg begynner nå å savne å kunne bruke CHECK-begrensning... Dette, f.eks. ville altså ikke funket i MySQL: CREATE TABLE Person ( int id PRIMARY KEY, navn VARCHAR(20), alder INTEGER(3) CHECK (alder<=120) ) Finnes det andre gratis databasesystemer som støtter denne funksjonen? Endret 7. juni 2006 av jogrba Lenke til kommentar
kaffenils Skrevet 7. juni 2006 Del Skrevet 7. juni 2006 F.eks. PosgreSQL eller Microsoft SQL Server 2005 Express. MS SQL 2005 har en begrensing på størrelse på databasen til maks 4 GB (tror jeg det var). Lenke til kommentar
roac Skrevet 7. juni 2006 Del Skrevet 7. juni 2006 Finnes det andre gratis databasesystemer som støtter denne funksjonen? 6261235[/snapback] Om jeg ikke tar helt feil, samtlige som jeg omtalte nylig: Microsoft/IBM/Oracle Express, og PostgreSQL. Da har du i det minste fire valg Lenke til kommentar
Oracel Skrevet 7. juni 2006 Del Skrevet 7. juni 2006 Det kan også løses noe mindre elegant med triggere, som så godt som alle RDBMS'er med respekt for seg selv støtter. Lenke til kommentar
roac Skrevet 8. juni 2006 Del Skrevet 8. juni 2006 Det kan også løses noe mindre elegant med triggere, som så godt som alle RDBMS'er med respekt for seg selv støtter. 6263313[/snapback] Og det er også i de fleste tilfeller en svært dårlig løsning, da det er vesentlig mer ressurskrevende enn et check constraint. Problemet med en trigger er at den gjør hele operasjonen, så blir triggeren kjørt som evt ruller tilbake transaksjonen. For videre informasjon kan følgende kode brukes i Microsoft SQL Server: create table TestA ( id int identity, val int check (val > 30) ); create table TestB ( id int identity, val int ); create trigger trB on TestB for insert, update as begin declare @val int; select @val = val from inserted; if @val <= 30 rollback transaction; end; insert into TestA values (25); insert into TestB values (25); Med andre ord, IKKE gjør dette med triggere Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå