関数と格納プロセスのステートメントを作成します。

1513 ワード

今日は卵と一緒にデータの移動をしました。表の移動はいいですが、いくつかの関数の移転があります。ずっとsuper権限が必要です。
そしてDBAのクラスメートを探して、rootのアカウントを探しました。以下のsqlを実行して、やっとできました。技術的な内容は何もありません。標識を忘れてください。
functionとprocedureの権限を値付けします。
GRANT EXECUTE ON PROCEDURE sqlreview.P_SVNTASKADD TO 'xiaoming'@'%';
functionとprocedureを削除します。
drop procedure P_SVNTASKADD;
新しいfunctionとprocedureを創立します。
DELIMITER //
CREATE DEFINER = `xiaoming`@`%` PROCEDURE `P_SVNTASKADD`(in par1 varchar(1000),in par2 varchar(100),in par3 varchar(200),in par4 varchar(200),in par5 varchar(100),in par6 varchar(2500), in par7 varchar(300),in par8 varchar(4000),out parout int)
begin
insert into svnTask  (svnUrl,svnType,developer,dba,createTime,modifyTime,filesNum,filesString,state,taskName,comments) values(par1,par2,par3,par4,now(),now(),par5,par6,0,par7,par8);
select MAX(taskId) into parout from svntask;
end;
//DELIMITER ;
functionとprocedureの意味がよく分かりません。この二つは一体一つのものですか?ネットで解答を探しましたが、確かな感じがします。
 
1、識別子が異なる。関数の識別子はFUNTIONで、プロシージャは:PROCEUREです。
2、関数の中では、一般的に変数のイメージは使わず、関数名で直接関数の値を返します。プロセスは、戻り値がある場合は変数を参照して返さなければなりません。
3、プロセスにはタイプがなく、プロセス名に値を付けられません。関数には種類があります。最後に関数の値を関数名に転送します。
4、関数は定義時に必ず関数の種類の説明を行い、プロセスはプロセスの種類の説明を行いません。
5、呼び出し方式が異なる。関数の呼び出しは表式に現れ、プロセス呼び出しは独立したプロセスによって文を呼び出して行われます。
6、プロセスは一般的にいくつかの演算結果を求めて一連のデータ処理を完了するように設計されます。あるいは計算とは関係のない各種操作を行います。関数はしばしば関数の値を求めるためにのみ使用されます。
まとめてみますと、いくつかのDMLの言語の文法はやはり熟知しています。例えば、関数を作るとか、関数を削除するとか、権限を与えるとか。また、関数の記憶過程の違いは大きいです。