webForumDet fria alternativet

triggers? views?

6 svar · 321 visningar · startad av pellesvenne

pellesvenneMedlem sedan jan. 2002227 inlägg
#1

vad är triggers och views för nått och vad använder man det till?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

LarsG har svarat ganska bra på vad en vy är för några år sedan. http://www.webforum.nu/showthread.php?s=&postid=123009#post123009

En trigger är en event som du vill skall inträffa vid ett speciellt tillfälle, under speciella premisser. T.ex. kanske du vill kontrollera en viss tabells högsta värde efter en INSERT eller UPDATE och sedan göra någonting speciellt ifall det värdet över-/understiger ett annat värde.

Triggers anses dock inte alltid vara optimala för en applikations struktur, då de ger en ganska dålig överblick på vad som händer och framförallt; när det händer.

pellesvenneMedlem sedan jan. 2002227 inlägg
#3

okej! om jag tex vill göra en count funktion som låter databasen räkna antal online i en procedure som automatisk exekveras vad ska jag då använda mig utav?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Vad menar du med automatiskt exekveras? Vad ska trigga exekveringen? Och vad ska du göra med värdet du får ut?

pellesvenneMedlem sedan jan. 2002227 inlägg
#5

istället för att man ska selecta antal online från en tabell hela tiden så kan man låta databasen räkna det själv utan att anropa det sedan skriver man ut det med ett enkelt kommando. Jag har för mig att oracle har den funktionen?

när anropas triggers`? och views? fungerar en view som en stored procedure?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#6

pellesvenne skrev:

istället för att man ska selecta antal online från en tabell hela tiden så kan man låta databasen räkna det själv utan att anropa det sedan skriver man ut det med ett enkelt kommando. Jag har för mig att oracle har den funktionen?

Nja, en vy kan ju ordna detta åt dig, men hur mycket prestanda det ger dig, det vet jag inte. Smidighet däremot, det ger det.

när anropas triggers`? och views? fungerar en view som en stored procedure?

Triggers anropas när du vill, i stort sett. Views anropar du precis som en vanlig tabell. Du kan anropa views i stored procedures, men de är inte samma sak.

Se på en vy som en tabell, fast som skapas när du frågar efter den (i sin SQL).

LarsGMedlem sedan dec. 200012 464 inlägg
#7

om jag tex vill göra en count funktion som låter databasen räkna antal online i en procedure som automatisk exekveras vad ska jag då använda mig utav?

Triggers. Använd en tabell för att lagra antalet

( countTable

tableName records
-------------- ---------

)

create trigger nd after delete on 
<tabellSomDuVillVetaAntalPosterI>
referencing old table as nisse
begin atomic
      declare c,a int;
      set c = (select count(*) from nisse);
      update countTable
       set records = records - c
        where tableName = '<tabellSomDuVillVetaAntalPosterI>'
       get diagnostics a = row_count;
       if a = 0 then
          insert into countTable values(
'<tabellSomDuVillVetaAntalPosterI>',c)
end

Och så likadant (fast tvärtom) för insert.

I stället för att att göra

select count(*) from <tabellSomDuVillVetaAntalPosterI>

så gör du

select * 
from countTable 
where tableName = '<tabellSomDuVillVetaAntalPosterI>'
132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)