sql >> データベース >  >> RDS >> Mysql

MysqlのSQLスクリプトで条件付きの場合

    条件付きコードが許可されているプロシージャで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;
    

    手順を使用したことがない場合は、「delimiter」キーワードに説明が必要な場合があります。最初の行は区切り文字を「//」に切り替えて、MySQLがまだセミコロンを解釈しようとせずに、プロシージャ定義にセミコロンを含めることができるようにします。プロシージャが作成されたら、区切り文字を「;」に戻します。したがって、通常どおりステートメントを実行できます。



    1. Oracleは、タイムゾーン付きのTIMESTAMPをDATEに変換します

    2. SQL Server AlwaysOn可用性グループ:インストールと構成。パート2

    3. SQLインジェクションを防ぐためにmysql_real_escape_stringをどこで使用しますか?

    4. MySQLの日付と時刻の単位(完全なリスト)