mysqlカーソル例mysqlカーソル簡易チュートリアルmysql一括操作データmysql一括更新データmysql逐条更新データ
1452 ワード
mysql V 5から.5から、InnoDBをデフォルトのストレージエンジンとして大きく変更しました.InnoDBはトランザクションをサポートし、関連するRDBMSの特性を持っています.ACIDトランザクションのサポート、データ整合性(外部キーのサポート)、災害復旧能力などです.
カーソルの知識を簡単にまとめます.(一)、認識カーソル(cursor)
データがどこに取られたかを識別する読み取り可能な標識です.
(二)カーソル特性
1、読み取り専用2、スクロールしない3、敏感でない
(3)カーソルの使用
カーソルはプロセッサを定義する前に定義する必要がありますが、変数はカーソルを定義する前に定義する必要があります.順序は変数定義-カーソル定義-プロセッサです.
1.カーソルの定義
DECLARE cursor_name CURSOR FOR select_statementという文はカーソルを宣言します.また、サブプログラムで複数のカーソルを定義することもできます.1つのブロック内の各カーソルに一意の名前を付ける必要があります.カーソルを宣言した後も単一の操作です.
2.カーソルOPEN
OPEN cursor_nameこの文は、以前に宣言されたカーソルを開きます.
3.カーソルFETCH
FETCH cursor_name INTO var_name [, var_name] ... この文は、指定したオープンカーソルで次のローを読み込み(次のローがある場合)、カーソルポインタをローに移動します.
4.カーソルCLOSE
CLOSE cursor_nameという文は以前開いていたカーソルを閉じます.使い終わったら閉じなければなりません.
(四)例として、カーソルを使用してデータを1つずつ更新するストレージ・プロシージャ(一括更新データ)
カーソルの知識を簡単にまとめます.(一)、認識カーソル(cursor)
データがどこに取られたかを識別する読み取り可能な標識です.
(二)カーソル特性
1、読み取り専用2、スクロールしない3、敏感でない
(3)カーソルの使用
カーソルはプロセッサを定義する前に定義する必要がありますが、変数はカーソルを定義する前に定義する必要があります.順序は変数定義-カーソル定義-プロセッサです.
1.カーソルの定義
DECLARE cursor_name CURSOR FOR select_statementという文はカーソルを宣言します.また、サブプログラムで複数のカーソルを定義することもできます.1つのブロック内の各カーソルに一意の名前を付ける必要があります.カーソルを宣言した後も単一の操作です.
2.カーソルOPEN
OPEN cursor_nameこの文は、以前に宣言されたカーソルを開きます.
3.カーソルFETCH
FETCH cursor_name INTO var_name [, var_name] ... この文は、指定したオープンカーソルで次のローを読み込み(次のローがある場合)、カーソルポインタをローに移動します.
4.カーソルCLOSE
CLOSE cursor_nameという文は以前開いていたカーソルを閉じます.使い終わったら閉じなければなりません.
(四)例として、カーソルを使用してデータを1つずつ更新するストレージ・プロシージャ(一括更新データ)
BEGIN
DECLARE no_more_record INT DEFAULT 0;
DECLARE pID BIGINT(20);
DECLARE pValue DECIMAL(15,5);
DECLARE cur_record CURSOR FOR SELECT colA, colB from tableABC; /* */
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record = 1; /* , NOT FOUND , 1*/
OPEN cur_record; /* OPEN */
FETCH cur_record INTO pID, pValue; /* , */
WHILE no_more_record != 1 DO
INSERT INTO testTable(ID, Value)
VALUES (pID, pValue);
FETCH cur_record INTO pID, pValue;
END WHILE;
CLOSE cur_record; /* CLOSE */
END