CREATE DEFINER=`root`@`localhost` PROCEDURE `add_item`(
IN parentId BIGINT UNSIGNED, IN jobId BIGINT UNSIGNED,
OUT id BIGINT UNSIGNED)
BEGIN
DECLARE newLeft INT UNSIGNED DEFAULT 0;
SELECT `RGT` into newLeft from `headings` where `ID`=parentId LIMIT 1;
/* ERROR TRAP */
IF (newLeft=0) OR (newLeft=NULL) THEN SET newLeft=1;
END IF;
Проблема: я не могу выбрать результат в локальной переменной newLeft, он всегда равен 1 (или 0, если я удалю ошибку). Я что-то упускаю? Я пробовал так много разных подходов, даже добавляя «INTO newLeft» в конец инструкции SELECT.Невозможно назначить локальную переменную внутри хранимой процедуры на MYSQL
Использование MYSQL 5.4 на тестовой машине, которая для Windows 7 с помощью IIs
Вы уверены, что в таблице заголовков есть строка с идентификатором parentId? Как выглядит вызов вашей процедуры? – Walid
parentId - это переданный параметр, и идентификатор есть. SELECT отлично работает, так как он также не смог сохранить результат в локальной переменной в других операторах SELECT в хранимой процедуре. – user1401768
Это должно быть ошибка MYSQL, я даже попробовал: – user1401768