У меня есть функция mysql следующим образом.
DELIMITER //
CREATE FUNCTION PROGRAM_API_Get_Val(
param_ VARCHAR(15)) RETURNS VARCHAR(100)
BEGIN
DECLARE val_ VARCHAR(100);
DECLARE get_val_ CURSOR FOR
SELECT param_name
FROM tab_1
WHERE param_id = param_;
OPEN get_val_ ;
IF(get_val_.rowcount>0) THEN
FETCH get_val_ INTO val_;
CLOSE get_val_;
RETURN val_;
END IF;
CLOSE get_val_;
RETURN NULL;
END//
Теперь я хочу создать следующее представление mysql, используя указанную выше функцию.
CREATE OR REPLACE VIEW application_list_view AS
SELECT child_param_id id,PROGRAM_API_Get_Val(param_id) view_col FROM tab_2;
обе эти функции выполняются успешно. Но когда я пытаюсь выполнить оператор select для этого представления, я получаю следующую ошибку.
Код ошибки: 1109. Неизвестная таблица 'get_name_' в списке полей 0,000 сек.
Это для создания таблицы для тестирования,
create table tab_1(param_id VARCHAR(100),param_name VARCHAR(100));
create table tab_2(child_param_id VARCHAR(100),child_param_name VARCHAR(100),param_id VARCHAR(100));
Это для вставки значений для значения tab_1
insert into tab_1 values ('1','pro_1');
insert into tab_1 values ('2','pro_2');
insert into tab_2 values ('1','pro_1','1');
insert into tab_2 values ('2','pro_2','1');