sql >> Databáze >  >> Database Tools >> phpMyAdmin

Chyba MySQL 2014 – Příkazy nejsou synchronizované – při pokusu o volání po sobě jdoucích uložených procesů

Hádám, že to může mít něco společného se způsobem, jakým přiřazujete své proměnné.

Moje rada je deklarovat lokální proměnné uvnitř vaší procedury a přiřadit je pomocí SELECT...INTO . Toto je obecně dobrá praxe a může vám pomoci s vaším problémem.

Zde je návod, jak by váš postup vypadal:

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. phpmyadmin - výchozí struktura namísto procházení

  2. Závažná chyba:Volání nedefinované metody Action::execute() /home/public_html/system/engine/event.php na řádku 62

  3. phpMyAdmin nezobrazuje seznam tabulek pro databázi, která tabulky rozhodně má

  4. V datovém souboru BCP došlo k neočekávanému EOF