MySQL Call Хранимая процедура из другой хранимой процедуры - PullRequest
0 голосов
/ 05 ноября 2010

Извините за длинный POST: Возможно ли, что я могу вызвать хранимые процедуры из другой хранимой процедуры в MySQL.Например: у меня есть две таблицы (test и testcomp): со структурами ниже:

- структура таблицы для таблицы test

CREATE TABLE IF NOT EXISTS `test` (
    `t_id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    PRIMARY KEY (`t_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

и

-- Структура таблицы для таблицы testcomp

CREATE TABLE IF NOT EXISTS `testcomp` (
    `c_id` int(11) NOT NULL AUTO_INCREMENT,
    `t_id` int(4) NOT NULL,
    `place` varchar(255) NOT NULL,
    PRIMARY KEY (`c_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

Теперь я заполнил тестовую таблицу с помощью:

INSERT INTO `test` (`t_id`, `name`) VALUES
    (1, 'foo'),
    (2, 'bar'),
    (3, 'ma');

и таблицу testcomp с:

INSERT INTO `testcomp` (`c_id`, `t_id`, `place`) VALUES
    (1, 1, 'gugs'),
    (2, 2, 'nyanga'),
    (3, 1, 'gugs'),
    (4, 3, 'skom');

Теперь, если яесть 2 процедуры:

Первый QryTestComp:

SELECT t_id, place FROM TestComp

Вышеприведенная процедура работает как просто запрос обычной таблицы: Но Второй QryTestPlac, который вызывает вышеуказанную процедуру:

SELECT * FROM Test INNER JOIN QryTestComp ON Test.t_id = QryTestComp.t_id

Поставляется с ошибкой:

В нем говорится об ошибке: 1146 (42S01): таблица 'mydb.qrytestcomp' не существует.Это не таблица, а процедура.

Указатель, пожалуйста.

С уважением,

- Джонги

1 Ответ

5 голосов
/ 05 ноября 2010

вы не можете присоединиться к хранимой процедуре, возможно, использование представлений может быть более подходящим?

...