Stored-Procedures
從文件導入儲存過程,但表沒有數據
這是我遇到問題的儲存過程(從文件導入):
DELIMITER // CREATE PROCEDURE `books_database`() BEGIN DECLARE n INT DEFAULT 0; WHILE n < 5 DO INSERT INTO books.science (Title,Author) VALUES ('Data Structures Using C','Aaron Tenenbaum'); INSERT INTO books.science (Title,Author) VALUES ('C Programming Language','Brian W. Kernighan, Dennis Ritchie'); INSERT INTO books.science (Title,Author) VALUES ('My Inventions','Nikolas Tesla'); SET n = n + 1; END WHILE; END //
當我導入 SP 文件時,它沒有錯誤地完成。當我檢查數據庫/表時,沒有從 SP 插入數據。
這個儲存過程有什麼不足或錯誤?
導入或創建儲存過程的事實不包括其執行。
創建 SP(通過 MySQL Shell 或通過引導文件)後,您必須呼叫它,以便處理儲存在其中的常式。
儲存過程
DELIMITER // CREATE PROCEDURE `books_database`() BEGIN SELECT... INSERT... END //
呼叫您的儲存過程…
CALL books_database();
額外評論:通過 MySQL Shell 創建儲存過程
- 在創建您的 SP 之前,首先,選擇
use your_database
將使用此 SP 的數據庫 ( ),否則,當您嘗試創建 SP 時,MySQL Shell 將返回:ERROR 1046 (3D000): No database selected
。- 在創建 SP 之後,不要忘記回滾到預設分隔符 (
DELIMITER ;
) 以便在 MySQL Shell 上執行正常命令。