SQLストアド・プロシージャ(MySQL)
6699 ワード
ストレージプロセスの原理
一般的にSQL文を作成する際に複数のテーブルにデータが追加される場合、ID列などの外部リンクとしてプライマリ・テーブルに情報を追加するプライマリ・キーがMySQLで自動的に生成される場合は、2回のselectを定義して追加することはできません.
ただし、SQL文はコンパイルして実行する必要があります.ストアド・プロシージャは、特定の機能を完了するためのSQL文セットです.
ストレージ・プロシージャの特徴は、ストレージ・プロシージャの名前を指定し、特定のパラメータ(ストレージ・プロシージャにパラメータがある場合)を指定することによって実行を呼び出す. ストレージ・プロシージャはプログラム可能な関数であり、データベースに作成され保存され、SQL文と制御構造から構成されます.
ストレージ・プロシージャの利点 SQL文の機能と柔軟性を強化し、複雑な判断と演算を伴うSQL文を作成します. ストアド・プロシージャが作成されると、ストアド・プロシージャのSQL文を再記述することなく、プログラム内で複数回呼び出すことができます. ストレージ・プロシージャはプリコンパイルされているため、あるオペレーションが複数回実行される場合、ストレージ・プロシージャはバッチに対して比較的効率的に実行される. ネットワーク伝送では、ストレージプロセスが事前に定義され、ネットワーク伝送は単純な文にすぎず、伝送負荷を大幅に軽減した. ストレージ・プロシージャは、比較的高いセキュリティを有する権限制限を行うことができる.
構文
ストアド・プロシージャの作成
変数の定義
if判断
よびだし
ストアド・プロシージャの作成(インスタンス)
一般的にSQL文を作成する際に複数のテーブルにデータが追加される場合、ID列などの外部リンクとしてプライマリ・テーブルに情報を追加するプライマリ・キーがMySQLで自動的に生成される場合は、2回のselectを定義して追加することはできません.
ただし、SQL文はコンパイルして実行する必要があります.ストアド・プロシージャは、特定の機能を完了するためのSQL文セットです.
ストレージ・プロシージャの特徴
ストレージ・プロシージャの利点
構文
ストアド・プロシージャの作成
//IN , ,
//OUT: ,
//INOUT: ,
CREATE PROCEDURE ( in/out/inout )
BEGIN
.........
END
変数の定義
SET @ =
if判断
IF THEN
よびだし
call test( );
ストアド・プロシージャの作成(インスタンス)
#
DELIMITER //
#
#( )
# :DROP PROCEDURE IF EXISTS . ;
DROP PROCEDURE IF EXISTS mysql.addtest;
#
# :CREATE PROCEDURE (in )
CREATE PROCEDURE addtest(IN testOne INT,IN testTwo VARCHAR(20))
#
BEGIN
#
DECLARE test VARCHAR(10);
#SET @ //
SET @exec = (select `id` from `test` where `testid` = 1);
#IF THEN //
IF @exec=0 THEN
# SQL
INSERT INTO `test1`(`testvalue`) VALUES(@exec);
#@@identity: SQL ID
SET @upid = @@identity;
ELSE
......
END IF;
#
END //
DELIMITER ;
#
call addtest(1,' ');