1. 程式人生 > >Mysql使用儲存過程和遊標

Mysql使用儲存過程和遊標

DROP PROCEDURE IF EXISTS `PROC_Modify_YID`;
CREATE PROCEDURE PROC_Modify_YID()  BEGIN DECLARE  mYID INT; DECLARE  mFlag INT; DECLARE  NewYID INT; -- 遍歷資料結束標誌 DECLARE done INT DEFAULT FALSE; declare auth_cur cursor forSELECT YID,Flag FROM cradle_camera_param; -- 開啟遊標 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 繫結控制變數到遊標,遊標迴圈結束自動轉true  open auth_cur; -- 開始迴圈 myLoop: LOOP -- 開始迴圈體,myLoop為自定義迴圈名,結束迴圈時用到   -- 提取遊標裡的資料,這裡只有一個,多個的話也一樣; FETCH auth_cur INTO mYID,mFlag; -- 宣告結束的時候 IF done THEN -- 判斷是否繼續迴圈   LEAVE myLoop; -- 結束迴圈   END IF; set NewYID = mYID + mFlag; SELECT mYID,mFlag,NewYID; update cradle_camera_param set YID = NewYID WHERE Flag=mFlag; COMMIT; -- 提交事務   END LOOP myLoop; -- 結束自定義迴圈體  close auth_cur; END CALL PROC_Modify_YID();

相關推薦

MYSQL儲存過程遊標(2)

儲存過程和遊標! 之前修改了表結構,現在要填充內容了, 需求:將已有的資料表內容進行擴充,比如A表現在增加了欄位,內容在B表,將他轉移過來 這裡經過掙扎,最後達成! /*填充batch_course_p

mysql儲存過程遊標遍歷

DELIMITER $$ CREATE PROCEDURE alarm_replay_insert_procedure() BEGIN -- 定義變數 DECLARE _nowTime D

MYSQL儲存過程遊標的使用

1、儲存過程 儲存過程是什麼,簡單來講,就像Java中的 方法(函式),不過它是SQL世界中的方法。 大部分時候,我們所使用都是單條SQL,用來針對一個或多表連線。但是也有情況,是據判斷先對錶A執行操作,變動後再結合表B進行操作。即SQL的執行可能需要 考慮

Mysql使用儲存過程遊標

DROP PROCEDURE IF EXISTS `PROC_Modify_YID`; CREATE PROCEDURE PROC_Modify_YID()  BEGIN DECLARE  mYID INT; DECLARE  mFlag INT; DECLAR

MySql 使用儲存過程遊標讀取並更新資料

1、遊標的作用及屬性 遊標的作用就是用於對查詢資料庫所返回的記錄進行遍歷,以便進行相應的操作;遊標有下面這些屬性:     a、遊標是隻讀的,也就是不能更新它;     b、遊標是不能滾動的,也就是隻能在一個方向上進行遍歷,不能在記錄之間隨意進退,不能跳過某些記錄

MySQL儲存過程函式的區別與優缺點

為什麼要使用儲存過程和函式 資料庫物件儲存過程和函式,是用來實現一組關於表操作的SQL語句程式碼當做一個整體來執行。一個完整的操作會包含多條SQL語句,在執行過程中需要根據前面的SQL語句來執行結果有選擇的執行後面的SQL語句。 儲存過程和函式可以簡單的理解為一條或多條SQL語句的集合

mysql儲存過程函式(一)

  儲存過程和函式是事先經過編譯並存儲在資料庫的一段sql語句集合,呼叫儲存過程和函式可以簡化應用程式開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對提高資料執行效率是有好處的。   儲存過程和函式的區別在於函式必須有返回值,而儲存過程卻沒有,儲存過程的引數可以使用IN,OUT,INOUT型別

mysql 儲存過程函式中游標的使用

在儲存過程和函式中,可以使用游標對結果集進行迴圈的處理。 游標的使用包括游標的生命、OPEN、fetch、和close,其語法如下: 1、宣告游標:  declare 游標名 cursor for select_statement(查詢語句) 2、open游標: &nb

mysql 儲存過程使用遊標多執行一條記錄

今天在寫資料遷移的儲存過程發現總會多執行一條記錄修改後記錄如下: DECLARE notfoundroute INT DEFAULT 0; declare route_cursor CURSOR FOR select uid, uteamid, iday, ctitle, ctrip, ct

MYSQL儲存過程遊標學習

自己隨便寫了一個統計使用者許可權數量插入對應表的案例 CREATE TABLE IF NOT EXISTS u_user_role_count ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT "表ID", `uid` BIGINT NOT NULL

mysql儲存過程計劃任務【叢集下,計劃任務的執行控制】

DROP PROCEDURE IF EXISTS `p_test_cluster`; DELIMITER ;; CREATE  PROCEDURE `p_test_cluster`() BEGIN     DECLARE iState INTEGER DEFAULT 0;

MySQL 儲存過程函式

概述   一提到儲存過程可能就會引出另一個話題就是儲存過程的優缺點,這裡也不做討論。因為mysql中儲存過程和函式的語法非常接近所以就放在一起,主要區別就是函式必須有返回值(return),並且函式的引數只有IN型別而儲存過程有IN、OUT、INOUT這三種類型。  1.建立儲存過程和函式語法

mysql 儲存過程遊標及逐行處理的配合使用

1. 資料準備 +----+------+--------+ | id | name | price1 | +----+------+--------+ | 1 | 大米 | 5 | | 2 | 雞蛋 | 4.5 | | 3 | 蘋果 | 6

mysql儲存過程利用遊標查詢每個資料庫的所有表

DELIMITER $ DROP PROCEDURE listAllDB; CREATE PROCEDURE listAllDB() BEGIN DECLARE no_mor

MySQL——儲存過程函式使用總結

什麼是儲存過程和函式 儲存過程和函式是事先經過編譯並存儲在資料庫中的一段SQL語句的集合,呼叫儲存過程和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對於提高資料處理的效率是有好處的。 儲存過程和函式的區別在於函式必須有返回值,而儲存過程沒有

MySQL 儲存過程遊標使用

一、儲存過程建立1.1、語法[DELIMITER $$ ]  --宣告結束符號,mysql預設;為語句結束符,這裡聲明後當儲存過程遇到$$才結束。CREATE PROCEDURE pro_name ([[ IN |OUT | INOUT ] 引數名 資料類形...])  --

MYSQL儲存過程儲存函式入門

一、MYSQL儲存過程簡介: 儲存過程是一個可程式設計的函式,它在資料庫中建立並儲存。它可以有SQL語句和一些特殊的控制結構組成。當希望在不同的應用程式或平臺上執行相同的函式,或者封裝特定功能時,儲存過程是非常有用的。資料庫中的儲存過程可以看做是對程式設計中面

MySQL儲存過程遊標的使用

示例:把表中status為0所對應的age值改為99(當然有更簡單的方法,這裡主要是為了學習MySQL儲存過程中游標的使用) 先建表如下: /* 在test庫下建立testb表 */ CREATE

MySQL儲存過程自定義函式、Navicat for mysql、建立儲存過程函式、呼叫儲存過程函式的區別

與你相遇 好幸運  可我已失去為你淚流滿面的權利  但願在我看不到的天際  你張開了雙翼 1 MySQL儲存過程和函式 過程和函式,它們被編譯後儲存在資料庫中,稱為永續性儲存模組(Persistent Stored Module,PSM),可以反覆呼叫,執行速度快。 1.1 儲存過程 儲存過程是由

MySQL中的儲存過程遊標儲存函式

MySQL中的儲存過程 首先來看兩個問題: 1.什麼是儲存過程? 儲存過程(Stored Procedure)是在資料庫系統中,一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程有引數的話)來執行它。 2.為什麼要使用儲