Gå til innhold

Gratis databaser som støtter CHECK?


Anbefalte innlegg

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 av jogrba
Lenke til kommentar
Videoannonse
Annonse
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...