Mysql
 sql >> база данни >  >> RDS >> Mysql

Ако е условно в SQL Script за Mysql

Просто увивам моя SQL скрипт в процедура, където е разрешен условен код. Ако предпочитате да не оставяте изявленията да лежат наоколо, можете да прекратите процедурата, когато приключите. Ето един пример:

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;

Ако не сте използвали процедури, ключовата дума "разделител" може да се нуждае от известно обяснение. Първият ред превключва разделителя на "//", за да можем да включим точка и запетая в нашата дефиниция на процедурата, без MySQL все още да се опитва да ги интерпретира. След като процедурата бъде създадена, превключваме разделителя обратно на ";" така че можем да изпълняваме оператори както обикновено.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Система за лични съобщения. Изброяване на последното съобщение от всеки разговор

  2. Как да експортирате низ Base64 във файл, от страна на сървъра, без да го записвате в уеб сървър, директно от PHP?

  3. Синтактична грешка на MySQL съхранената процедура след BEGIN

  4. Как да видя всички външни ключове към таблица или колона?

  5. ГРЕШКА:SQLSTATE[HY000] [2002] Не може да се осъществи връзка, защото целевата машина активно я отказа