天天看點

mysql 1046_mysql – 錯誤代碼1046:沒有選擇資料庫

我在MySQl Workbench上編寫了一個存儲過程(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

當我運作調用sp_archivev3(); ,我收到錯誤代碼錯誤代碼1046:沒有資料庫

選擇通過在側欄的SCHEMAS清單中輕按兩下其名稱來選擇要使用的預設DB.

請讓我知道我的存儲過程有什麼問題.

解決方法:

問題是MySQL不知道應該執行哪個名為sp_archivev3的過程; MySQL不知道要檢視哪個資料庫.(存儲程式是特定資料庫中的對象,就像表是特定資料庫中的對象一樣.)

使用USE語句指定目前資料庫:

use mydatabase;

call sp_archivev3();

或者使用資料庫名稱限定程式:

call mydatabase.sp_archivev3();

标簽:mysql,stored-procedures

來源: https://codeday.me/bug/20190716/1477244.html