Mysql
 sql >> Database >  >> RDS >> Mysql

Se condizionale in SQL Script per Mysql

Ho appena avvolto il mio script SQL in una procedura, in cui è consentito il codice condizionale. Se preferisci non lasciare le dichiarazioni in giro, puoi abbandonare la procedura quando hai finito. Ecco un esempio:

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;

Se non hai utilizzato le procedure, la parola chiave "delimiter" potrebbe aver bisogno di una spiegazione. La prima riga cambia il delimitatore in "//" in modo da poter includere punti e virgola nella definizione della nostra procedura senza che MySQL tenti ancora di interpretarli. Una volta creata la procedura, riportiamo il delimitatore su ";" così possiamo eseguire le istruzioni come al solito.