Mysql
 sql >> Base de données >  >> RDS >> Mysql

Si conditionnel dans SQL Script pour MySQL

Je viens d'envelopper mon script SQL dans une procédure, où le code conditionnel est autorisé. Si vous préférez ne pas laisser les déclarations traîner, vous pouvez abandonner la procédure lorsque vous avez terminé. Voici un exemple :

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;

Si vous n'avez pas utilisé de procédures, le mot-clé "délimiteur" peut nécessiter une explication. La première ligne change le délimiteur en "//" afin que nous puissions inclure des points-virgules dans notre définition de procédure sans que MySQL ne tente encore de les interpréter. Une fois la procédure créée, nous rebasculons le délimiteur en ";" afin que nous puissions exécuter les instructions comme d'habitude.