MYSQLストレージ、ストレージCreateの作成、ストレージの表示、ストレージの更新/変更、ストレージの削除、およびインスタンスの説明


1.ストレージ
ストアド・プロシージャ(Stored Procedure)は、外部プログラムが呼び出すためにデータベースに複雑なプログラムを格納するデータベース・オブジェクトです.
ストレージ・プロシージャは、特定の機能のSQL文セットを完了するためにコンパイルされて作成され、データベースに保存されます.ユーザーは、ストレージ・プロシージャの名前を指定し、必要に応じてパラメータを指定することで実行を呼び出すことができます.
ストレージプロセスは思想的に簡単で、データベースSQL言語レベルのコードパッケージと再利用です.
ストレージの作成
1)ウィザードの作成
対応するデータベースの下にある関数を選択して右クリックして新規関数を作成->選択プロセス->入力/出力パラメータの記入->関数体情報の記入->保存->関数名の記入
  • SQLを使用して
  • を作成
    構文:
    CREATE PROCEDURE     ([IN|OUT|INOUT]         ],[IN|OUT|INOUT]         ,…)
    [   ...]     
    

    パラメータの説明:
    IN入力パラメータは、そのパラメータの値がストアド・プロシージャの呼び出し時に指定されなければならないことを示し、ストアド・プロシージャ中にそのパラメータを変更した値は戻されず、デフォルト値となる
    OUT出力パラメータこの値は、記憶プロセス内部で変更され、戻ることができる
    INOUT入出力パラメータ呼び出し時に指定し、変更・返却可能
    プロシージャの説明:プロシージャの開始と終了はBEGINとENDで識別されます.
    例:
    IN
    # SELECT                
    CREATE PROCEDURE in_param(IN p_in int)
        BEGIN
        SELECT p_in;
        SET p_in=2;
        SELECT p_in;
        END;
      
     CREATE PROCEDURE in_param2(IN p_in int)
        BEGIN
        SET p_in=2;
        SELECT p_in;
        END;
    
    #  
    SET @p_in=1;
    CALL in_param(@p_in);
    SELECT @p_in;
       :1,1
    
    CALL in_param2(@p_in);
    SELECT @p_in;
       :2,1
    
          ,p_in           ,     @p_id  
    

    OUT
    # SELECT                
    CREATE PROCEDURE in_param3(OUT p_in int)
        BEGIN
        SELECT p_in;
        END;
      
     CREATE PROCEDURE in_param4(OUT p_in int)
        BEGIN
        SET p_in=2;
        SELECT p_in;
        END;
    
    #  
    SET @p_in=1;
    CALL in_param3(@p_in);
    SELECT @p_in;
       :null,null
    
    CALL in_param4(@p_in);
    SELECT @p_in;
       :2,2
    
          ,p_in         ,   @p_id  
     p_in        ,  p_in     ,          ,             。
    

    INOUT
    CREATE PROCEDURE in_param5(INOUT p_in int)
        BEGIN
        SELECT p_in;
        END;
      
     CREATE PROCEDURE in_param6(INOUT p_in int)
        BEGIN
        SET p_in=2;
        SELECT p_in;
        END;
        
    #  
    SET @p_inout=1;
    CALL in_param5(@p_inout) ;
    SELECT @p_inout;
       :1,1
    
    CALL in_param6(@p_inout) ;
    SELECT @p_inout;
       :2,2
     p_inout      ,     ,         ,@p_inout

    ストレージの表示
    1)表示するストレージの選択→ストレージの設計
    2)sql表示
    //       /   
    SELECT * FROM mysql.proc ;
    
    //           
    SHOW PROCEDURE STATUS
    
    SHOW PROCEDURE STATUS where Db ="py_etl"
     
    //                 ,      
    show PROCEDURE status like '  ';
    show PROCEDURE status like '%me';
    show PROCEDURE status like "in_param"
     
    //          
    show create PROCEDURE '    ';
    show create PROCEDURE ym_datesql
    
    //    
    call PROCEDURE(  )
    

    ストレージの変更
    1)変更するプロシージャの選択>関数の右クリック>プロシージャ本体の書き込み>保存
    2)関数を変更するとき、彼はあなたの元のプロセスを削除して、プロセスの本体の内容を更新したので、プロセスを更新したいときは、プロセスを再構築したほうがいいです.どのように検証して、設計の関数で過程の主体の内容を変更して、SQLのプレビューをクリックして、実行するSQL文を見ることができて、例えば:前のin_param、後の2つの付与コードを注釈して、彼のsqlの内容は
    DROP PROCEDURE IF EXISTS `in_param`;
    
    CREATE DEFINER = `root`@`localhost` PROCEDURE `in_param`(IN p_in int)
    BEGIN
        SELECT p_in;
        
        END;
    

    既存の関数を削除しているのがよくわかりますが、パラメータが変更されていない場合は本体の内容を変更するので、パラメータの問題を回避するために、変更プロセスを変更するよりも、パラメータの問題を再作成します.
    ストレージの削除
    1)変更するプロシージャを選択->関数を右クリックで削除
    2)
    //       
    drop PROCEDURE '   'drop PROCEDURE in_param ;