Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wenn in SQL-Skript für Mysql bedingt

Ich schließe mein SQL-Skript einfach in eine Prozedur ein, in der bedingter Code zulässig ist. Wenn Sie die Anweisungen lieber nicht herumliegen lassen möchten, können Sie den Vorgang abbrechen, wenn Sie fertig sind. Hier ist ein Beispiel:

delimiter //

create procedure insert_games() 

begin

    set @platform_id := (select id from platform where name = 'Nintendo DS');

    -- Only insert rows if the platform was found
    if @platform_id is not null then 

        insert into game(name, platform_id) values('New Super Mario Bros', @platform_id);
        insert into game(name, platform_id) values('Mario Kart DS', @platform_id);

    end if;

end;

//

delimiter ;

-- Execute the procedure
call insert_games();

-- Drop the procedure
drop procedure insert_games;

Wenn Sie keine Prozeduren verwendet haben, muss das Schlüsselwort "delimiter" möglicherweise erklärt werden. Die erste Zeile stellt das Trennzeichen auf „//“ um, sodass wir Semikolons in unsere Prozedurdefinition aufnehmen können, ohne dass MySQL versucht, sie bereits zu interpretieren. Nachdem die Prozedur erstellt wurde, schalten wir das Trennzeichen wieder auf „;“ um. damit wir Anweisungen wie gewohnt ausführen können.