Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Se condicional no SQL Script for Mysql


Eu apenas envolvo meu script SQL em um procedimento, onde o código condicional é permitido. Se preferir não deixar as declarações espalhadas, você pode abandonar o procedimento quando terminar. Aqui está um exemplo:
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 você não usou procedimentos, a palavra-chave "delimiter" pode precisar de alguma explicação. A primeira linha muda o delimitador para "//" para que possamos incluir ponto e vírgula em nossa definição de procedimento sem que o MySQL tente interpretá-los ainda. Uma vez que o procedimento foi criado, voltamos o delimitador para ";" para que possamos executar instruções como de costume.