我在MySQl工作台上编写了一个存储过程(sp_archivev3),如下所示。基本上,将值从一个数据库插入到另一个数据库。
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`MailMe`@`%` PROCEDURE `sp_archivev3`()
BEGIN
INSERT INTO
send.sgev3_archive(a_bi,
b_vc,
c_int,
d_int,
e_vc,
f_vc,
g_vc,
h_vc,
i_dt,
j_vc,
k_vc,
l_vc,
m_dt,
n_vch,
o_bit)
SELECT a_bi,
b_vc,
c_int,
d_int,
e_vc,
f_vc,
g_vc,
h_vc,
i_dt,
j_vc,
k_vc,
l_vc,
m_dt,
n_vch,
o_bit
FROM send.sgev3
WHERE m_dt BETWEEN '2014-06-09' AND CURDATE();
END当我运行call sp_archivev3();时,我得到一个错误,错误代码为1046: No database SELECT the default DB to be used,方法是在侧边栏的SCHEMAS列表中双击默认DB的名称。
请让我知道我的存储过程出了什么问题。
发布于 2014-06-13 01:55:05
问题是MySQL不知道应该执行哪个名为sp_archivev3的过程;MySQL不知道要查看哪个数据库。(存储的程序是特定数据库中的对象,就像表是特定数据库中的对象一样。)
使用USE语句指定当前数据库:
use mydatabase;
call sp_archivev3();或者使用数据库名称来限定该过程:
call mydatabase.sp_archivev3();https://stackoverflow.com/questions/24190575
复制相似问题