標籤:查看 efi pen 知識 display iter ide mil select
知識點五:MySQL預存程序之定義條件和處理過程及預存程序的管理(11,12)
定義條件和處理:
條件的定義和處理可以用來定義在處理過程中遇到的問題時相應的處理步驟。
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘錯誤碼值’SET @變數=變數值
預存程序的管理:
預存程序的修改:
ALTER{PROCEDURE | FUNCTION} sp_name
[characteristic …]
characteristic:
{CONTAINS SQL | NO SQL |READS SQL DATA | MODIFIES SQL DATA}
| SQL SECURITY {DEFINER| INVOKEY }
|COMMENT ‘string’;
注釋:NO SQL表示子程式中不包含SQL語句,
READS SQL DATA 表示子程式中包含讀資料的語句,
MODIFIES SQL DATA 表示子程式中包含寫資料的語句
SQL SECURITY {DEFINER | INVOKEY }指明誰有許可權執行
DEFINER表示只有定義者自己才能夠執行;
INVOKEY 表示調用者可以執行
COMMENT ‘string’是注釋資訊
查看資料庫下的預存程序:
SHOW PROCEDURE STATUS WHERE db=’資料庫名’;
查看當前資料庫下面的預存程序的列表:
SELECT specific_name FROM mysql.proc;
查看預存程序的內容:
SELECT specific_name,body FROM mysql.procWHERE specific_name = 預存程序名稱;
或者:SHOW CREATE PROCEDURE 預存程序名稱.
刪除預存程序:
DROP PROCEDURE IF EXISTS預存程序名稱
1 -- 定義條件和處理 2 --加入是對的,但執行報錯,因為userinfo中if為一的以及存在 3 DELIMITER // 4 CREATE PROCEDURE p_insertDemo() 5 6 BEGIN 7 INSERT INTO userinfo VALUES(1,‘ui‘,‘123‘); 8 INSERT INTO employees VALUES(5098,‘1990-11-11‘,‘uim‘,‘jum‘,‘2000-11-12‘); 9 END 10 //11 12 DELIMITER ;13 CALL p_insertDemo2();14 15 16 --對的17 DELIMITER //18 CREATE PROCEDURE p_insertDemo2()19 20 BEGIN21 DECLARE CONTINUE HANDLER FOR SQLSTATE ‘23000‘ SET @x=1;22 INSERT INTO userinfo VALUES(1,‘ui‘,‘123‘);23 INSERT INTO employees VALUES(5098,‘1990-11-11‘,‘uim‘,‘jum‘,‘M‘,‘2000-11-12‘);24 END 25 //26 27 DELIMITER ;28 CALL p_insertDemo2();
定義條件和處理過程測試
MYSQL進階學習筆記四:MySQL預存程序之定義條件,處理過程及預存程序的管理!(視頻序號:進階_11,12)