ホームページ > データベース > mysql チュートリアル > mysql自定义存储过程和触发器_MySQL

mysql自定义存储过程和触发器_MySQL

WBOY
リリース: 2016-06-01 13:13:30
オリジナル
1187 人が閲覧しました

mysql 自定义存储过程和触发器--存储过程示范	DROP PROCEDURE IF EXISTS PRO_TEST;	CREATE PROCEDURE PRO_TEST(IN NUM_IN INT,OUT NUM_OUT INT,INOUT NUM_INOUT)	BEGIN		//DO ANYTHING YOU WANT	END;		参数解释:		in : 就是输入参数,输入参数是会被传入到存储过程作为参数使用,改变它的值将不会改变其原本值,相当于是值传递		out: 此为输出参数,在存储过程中为给其值时,哪怕之前传入值,其值也只是NULL,相当于是在存储过程中新建一个值并付给out参数并输出		inout:此为输入输出参数,可以理解为前两者之和,最为简单的就是理解为按照对象传递			在命令行中如何调用:		SET @NM_IN=1,@NM_OUT=2,@NM_INOUT=3;		call PROC_TEST(@NM_IN,@NM_OUT,@NM_INOUT);		在java中如何调用:		想办法得到connection,在hibernate中为getSession().connection();		使用Java.Sql.CallableStatemet call=connection().prepareStatement("call PROC_TEST(1,2,3)");		call.executeQuery()将返回ResultSet对象,call.executeUpdate()将会返回受影响的行数。				--触发器示例	触发器按照触发类型可分为:INSERT,UPDATE,DELETE触发器,	按照触发时间可分为:BEFORE,AFTER,	按照内容新旧可分为:OLD,NEW,其中删除操作只有OLD,新增操作只有NEW,修改操作两者皆有		eg:没修改user表一次,就往user_back表插入修改之前和修改之后的数据:	CREATE TRIGGER TRI_UPGRADE_USER BEFORE UPDATE ON USER FOR EACH ROW	BEGIN		INSERT INTO USER_BACK(USERNAME,USERPWD) VALUES(OLD.USERNAME,OLD.USERPWD);		INSERT INTO USER_BACK(USERNAME,USERPWD) VALUES(NEW.USERNAME,NEW.USERPWD);	END;		这样就搞定了
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート