空值檢查的存儲過程

# 空值檢查存儲過程
CREATE PROCEDURE `check_column_null_num`(IN schema_name VARCHAR(100), IN table_name2 VARCHAR(100))
BEGIN
-- 數據表schema_name中的列名稱
DECLARE temp_column VARCHAR(100); 
-- 創建結束標誌變量  
DECLARE done INT DEFAULT FALSE;
-- 定義遊標來操作每一個COLUMN_NAME
DECLARE cursor_column CURSOR FOR
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE table_schema = schema_name AND table_name = table_name2;
-- 指定遊標循環結束時的返回值  
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  
-- 打開遊標
OPEN cursor_column;
read_loop:LOOP
           FETCH cursor_column INTO temp_column;
           -- 判斷遊標的循環是否結束 
           IF done THEN 
                    LEAVE read_loop;
           END IF;
           -- 這裏需要設置具體的SQL語句temp_query
           SET @temp_query=CONCAT('SELECT COUNT(*) as ', temp_column, '_null_num FROM ', table_name2, ' WHERE ', temp_column, ' IS NULL');
           -- 執行SQL語句
           PREPARE stmt FROM @temp_query;           
           EXECUTE stmt;
END LOOP;
-- 關閉遊標
CLOSE cursor_column;
END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章