Задать вопрос
@muhasa

Почему mysql не позволяет использовать в хранимой процедуре локальную переменную?

Здравствуйте.
Пытаюсь разобраться с хранимыми процедурами и переменными в mysql.
Вроде разницы между локальной и системной переменной только в области видимости, но конкретно в этой хранимой процедуре я никак не могу заменить системную переменную на локальную!
Как такое возможно изменить? И сможет ли кто изменить эту ранимую процедуру таким образом, чтобы вместо системной переменной использовалась локальная?

BEGIN
DECLARE ap1 TEXT;
DECLARE q1 VARCHAR(255);
SET @q1:= "SELECT t2.id visit_id, DATE_FORMAT(t2.date, '%d.%m.%Y %H:%i') visitdate,CONCAT(t1.name, ' ', t1.surname) doctor_name, t4.name disease_name, CONCAT(t3.name, ' ', t3.surname) pacient_name, t2.complaint as complaint, t2.treatment as treatment, t2.number_room as number_room, t2.visited as visited
			FROM hospital.doctor t1 
			INNER JOIN registration.visit t2 
			ON t1.id = t2.id_doctor
			INNER JOIN registration.pacient t3
			ON t2.id_pacient = t3.id
			LEFT JOIN registration.disease t4
			ON t2.id_disease = t4.id";
IF doctor_id != '' THEN SET @q1:=CONCAT(@q1," WHERE t2.id_doctor = ", doctor_id); END IF;            
PREPARE qr FROM @q1;
EXECUTE qr;
END
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы