Avatar billede garlan Nybegynder
13. februar 2003 - 14:41 Der er 3 kommentarer og
2 løsninger

TRIGGER IF ELSE

Hej

Jeg har en trigger på en given tabelA som laver en insert
i en anden tabelB når der bliver tilføjet noget nyt i den
ene tabelA.
Problemmet er hvis værdien allerede eksister i tabelB så skal triggeren ikke udføre insert funktionen...
Jeg har prøvet at løse dette med en IF ELSE sætning, men
jeg kan ikke få IF ELSE til at virke.
Avatar billede cyfer Nybegynder
13. februar 2003 - 14:43 #1
hvad med noget
if(isset....)  ?
Avatar billede cyfer Nybegynder
13. februar 2003 - 14:50 #2
Hmm
Du kunne jo lave en:

if(mysql_num_rows($result)) {
//hvis der findes noget i tabellen
$query = "insert into TABLE ........";

} else {
//hvis der ikke findes noget i tabellen
exit;
}
Avatar billede cbp Nybegynder
13. februar 2003 - 15:13 #3
Kan du ikke bruge Exists:

if (Not Exists(Select * from tabelB where id = xx))
  Insert into tabelA
Avatar billede garlan Nybegynder
13. februar 2003 - 15:15 #4
HEJ
har selv løst problemmet:

CREATE TRIGGER [INSERT_ELEV_BRUGER] ON [dbo].[Elev]
FOR INSERT
AS

IF (exists(SELECT Elev.Brugernavn FROM inserted Elev INNER JOIN Brugere as B on Elev.Brugernavn = B.Brugernavn))



    BEGIN
    EXEC sp_ERROR '0'
       
    END
ELSE   
BEGIN
   
    INSERT INTO Brugere
          SELECT Brugernavn
          FROM Elev
          WHERE(Brugernavn NOT IN
                    (SELECT    Brugernavn
                      FROM          Brugere))

END

"DET SPILLER MAX"
Avatar billede garlan Nybegynder
13. februar 2003 - 15:16 #5
MEN ELLERS TAK
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