Avatar billede stig3 Mester
15. august 2001 - 10:47 Der er 2 kommentarer og
1 løsning

trigger med join

jeg har to tabeller:

Medarbejdere
-----------------
navn (primærnøgle)
initialer (fremmednøgle)
tlf

kontor_medarbejdere
-------------------
initialer (primærnøgle)
kontor

Jeg skal så vha en trigger indsætte i en anden tabel:
Person
--------------
navn
initialer
kontor

Problemet er at jeg ikke ved hvilken af tabellerne medarbejdere eller kontor_medarbejdere der opdateres først og hvornår triggeren bliver fyret af.

Hvor\'n gør man det ?
Avatar billede ldanielsen Nybegynder
15. august 2001 - 11:03 #1
Hvorfor skal det absolut være en trigger?

Er dette rigtigt:
Der er en og kun en record i kontor_medarbejdere for hver record i Medarbejdere.

Hvis ja, så drop tabellen Person og lav i stedet et view:

SELECT m.navn, km.initialer, km.kontor FROM
kontor_medarbejdere km INNER JOIN Medarbejdere m ON
km.initialer = m.initialer

hvis nej, så kan det godt bruges alligevel, blot vil du kun kunne se de medarbejdere der har fået tildelt et kontor, og det ville du jo også have med trigger-løsningen.
Avatar billede stig3 Mester
15. august 2001 - 11:07 #2
Jeg tror nej, fordi:

Der skal kunne opdateres i tabellen Person(den skal bruges til et nyt system). Det kan jeg ikke hvis jeg i viewet laver et join.

Der er en del flere felter i begge tabeller end jeg har angivet. Jeg ville bare simplificere for at gøre det overskueligt.
Avatar billede stig3 Mester
15. august 2001 - 11:25 #3
Jeg fandt ud af det selv.

Kontor_medarbejdere bliver åbenbart indsat først så jeg kunne hente kontornavnet med:
select @kontor=kontor from kontor_medarbejdere where initialer=@initialer

fra insert-triggeren i tabellen Medarbejdere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester