相似於java的方法java
1. 建立:sql
DELIMITER $$ #設置存儲過程結束標記,防止混淆,這個符號能夠本身設,用完後要改回';'
CREATE PROCEDURE pro_test( IN 參數名 類型 , OUT 參數名 類型, INOUT 參數名 類型) #表示傳入參數,輸出參數,同時輸入輸出的參數,能夠多個。 BEGIN #sql語句 END $$
DELIMITER ;
2. 使用:測試
call 存儲過程名(參數列表)ui
例子1:無參數spa
DELIMITER $$ CREATE PROCEDURE pro_test_no_parameter() BEGIN INSERT INTO userinfo VALUES(7,'person1','1990-01-01'); END $$ DELIMITER ; CALL pro_test_no_parameter();
命令行 和 sqlyog中不太同樣- -sqlyog中能夠的命令行必定能夠, 命令行能夠的sqlyog有時很差用。。。因此都用sqlyog測試命令行
例子2:無參數有變量code
DELIMITER $$ CREATE PROCEDURE pro_test_no_parameter1() BEGIN DECLARE a INT; SET a = 8; INSERT INTO userinfo VALUES(a,'person2','1990-02-02'); END $$ DELIMITER ;
CALL pro_test_no_parameter1();
例子3:有參數blog
#建立 DELIMITER $$ CREATE PROCEDURE pro_test_parameter( IN input INT, OUT output VARCHAR(20), INOUT param INT) BEGIN SET param = param + 1; SELECT username INTO output FROM userinfo WHERE uid = input; END $$ DELIMITER ; #使用 SET @p = 2; CALL pro_test_parameter(1, @output, @p); SELECT @output,@p; #顯示結果
3. 刪除:input
drop procedure 存儲過程名;class
4.查看存儲結構結構:
show create procedure pro_test_no_parameter;
不能修改內部的sql語句。