phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Kesalahan MySQL 2014 - Perintah tidak sinkron - saat mencoba memanggil proses tersimpan yang berurutan

Saya menduga ini mungkin ada hubungannya dengan cara Anda menetapkan variabel Anda.

Saran saya adalah mendeklarasikan variabel lokal di dalam prosedur Anda, dan menetapkannya menggunakan SELECT...INTO . Ini adalah praktik yang baik secara umum, dan dapat membantu Anda mengatasi masalah Anda.

Begini tampilan prosedur Anda:

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. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Adakah yang bisa membantu saya mencari tahu apa yang salah dengan kode ini?

  2. Mengapa nama tabel saya diubah menjadi huruf kecil di phpmyadmin?

  3. Apakah ada cara untuk menyalin semua data dalam database mysql ke yang lain? (phpmyadmin)

  4. Penggunaan ID dalam database

  5. PHP membuat tabel HTML dari database