【发布时间】:2011-05-05 12:12:11
【问题描述】:
抱歉,帖子太长了: 是否有可能我可以从另一个调用存储过程 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”不存在。 它不是一个表,而是一个过程。
请指点一下。
问候,
--钟吉
【问题讨论】:
标签: mysql sql procedures mysql-error-1146