sql >> データベース >  >> Database Tools >> phpMyAdmin

MySQLエラー2014-コマンドが同期していません-連続したストアドプロシージャを呼び出そうとしたとき

    これは、変数の割り当て方法と関係があるのではないかと思います。

    私のアドバイスは、プロシージャ内でローカル変数を宣言し、SELECT...INTOを使用してそれらを割り当てることです。 。これは一般的には良い習慣であり、問​​題を解決するのに役立つ場合があります。

    手順は次のようになります。

    DELIMITER $$
    
    DROP PROCEDURE IF EXISTS deleteOrg $$
    
    CREATE PROCEDURE deleteOrg(IN IN_ID INT)
    
    MODIFIES SQL DATA
    
    BEGIN 
      DECLARE V_ORG_ID INT;
      DECLARE V_MY_LEFT INT;
      DECLARE V_MY_RIGHT INT;
      DECLARE V_MY_WIDTH INT;
    
        START TRANSACTION;
    
        SELECT id, 
               lft, 
               rgt, 
               rgt - lft + 1
          into V_ORG_ID, 
               V_MY_LEFT, 
               V_MY_RIGHT,  
               V_MY_WIDTH
          FROM organization 
         WHERE id = IN_ID;
    
        -- delete statements for removing roles and other dependencies
    
        DELETE FROM organization 
         WHERE id = V_ORG_ID;
    
        UPDATE organization 
           SET rgt = rgt - V_MY_WIDTH 
         WHERE rgt > V_MY_RIGHT;
    
        UPDATE organization 
           SET lft = lft - V_MY_WIDTH 
         WHERE lft > V_MY_LEFT;
    
    COMMIT;
    
    END;
    $$
    
    DELIMITER ;
    


    1. SQL ServerManagementStudioのスキン/外観/レイアウト

    2. PHPMyAdminを使用してMySQLの重複行を削除するにはどうすればよいですか?

    3. PHPでのアップロード制限と投稿制限の上限

    4. 列全体を暗号化するにはどうすればよいですか