Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Вы не знаете почему процедура вызванная в MySQL Query Browser возвращает NULL, NULL?
В PHPMyAdmin возващает 0 и "+"d
В таблице нет ни одного NULL. Там одна строка данных. Ниже приведены 2 скриншота. В колонках 0 и "+"
SP:
DELIMITER $$ DROP PROCEDURE IF EXISTS `p4` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`() SQL SECURITY INVOKER COMMENT 'Example' BEGIN DECLARE intID INT(2); DECLARE varcharStatus VARCHAR(255); DECLARE cur1 CURSOR FOR SELECT intID,varcharStatus FROM tCandidates; OPEN cur1; FETCH FROM cur1 INTO intID,varcharStatus; CREATE TABLE tTemp6 (intID INT(2), varcharStatus VARCHAR(255)); INSERT INTO tTemp6 VALUES (intID, varcharStatus); SELECT intID, varcharStatus FROM tTemp6; CLOSE cur1; END $$ DELIMITER ;
Неактивен
Потому что у вас перекрываются названия локальных переменных и имен столбцов в таблице.
Общее правило здесь такое:
1)Локальные переменные имеют приоритет над параметрами процедуры и именами столбцов
2)Локальные переменные во внутренних блоках имеют приоритет над определенными во внешних
3)Параметры процедуры имеют приоритет над именами столбцов.
Подробнее обсуждение этой темы с примерами см. http://sqlinfo.ru/forum/viewtopic.php?id=363 начиная с третьего поста.
Неактивен
Спасибо большое!
Какой префиксы Вы порекомендуете для переменных хранимой переменной? Может "spv_" ?
Неактивен
Дело вкуса. Главное, чтобы вы (и те кто будет работать с этим кодом кроме вас) не путались.
Неактивен
Стоит ли в начале хранимой процедуры указывать
SET TRANSACTION ISOLATION
LEVEL SERIALIZABLE
?
Неактивен
Зависит от того, что Вы хотите от этого получить. К слову сказать, этот уровень
изоляции не работает в 5.1.
Неактивен
А какой максимальный уровень сериализуемости есть?
Неактивен
Ну, видимо, REPEATABLE_READ. В 5.0, кстати, SERIALIZABLE работает.
Неактивен
Страниц: 1