sql >> Databasteknik >  >> RDS >> Mysql

Om villkorligt i SQL Script för Mysql

Jag lindar bara in mitt SQL-skript i en procedur där villkorlig kod är tillåten. Om du hellre inte vill låta påståendena ligga kvar kan du släppa proceduren när du är klar. Här är ett exempel:

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;

Om du inte har använt procedurer kan nyckelordet "avgränsare" behöva förklaras. Den första raden ändrar avgränsaren till "//" så att vi kan inkludera semikolon i vår procedurdefinition utan att MySQL försöker tolka dem ännu. När proceduren har skapats byter vi tillbaka avgränsaren till ";" så vi kan köra satser som vanligt.



  1. Indexera en MySql TEXT kolumn?

  2. DATEDIFF() Returnerar fel resultat i SQL Server? Läs detta.

  3. Mysql får sista id för specifik tabell

  4. Förstå låsgranularitet i MySQL