mysql 存储过程中游标,变量用于字段名,表名时的示例

CREATE DEFINER=`root`@`%` PROCEDURE `randstutest`()
BEGIN
        DECLARE    v_finished INTEGER DEFAULT 0;
    DECLARE    ssid VARCHAR ( 100 ) DEFAULT "";
    DECLARE    sname VARCHAR ( 100 ) DEFAULT "";
    DECLARE    item_cursor CURSOR FOR SELECT        sid,    NAME     FROM        sys_itemlist     WHERE        en = 1     AND testView = 1;
    -- declare NOT FOUND handler
    DECLARE    CONTINUE HANDLER FOR NOT FOUND         SET v_finished = 1;
    OPEN item_cursor;
    itemloop :
    LOOP
            FETCH item_cursor INTO ssid,    sname;
        IF    v_finished = 1 THEN
                LEAVE itemloop;
        END IF;
        -- 变量用于字段名,表名时,必须 用以下方式 --
        SET @sqlStr:=CONCAT('UPDATE stutest SET ', ssid, ' = RAND() * 100');
    PREPARE stmt from @sqlStr;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;  
        
    END LOOP itemloop;
CLOSE item_cursor;

END

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 14:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 14:14:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 14:14:01       82 阅读
  4. Python语言-面向对象

    2024-03-29 14:14:01       91 阅读

热门阅读

  1. 篇二.软件需求管理办法

    2024-03-29 14:14:01       36 阅读
  2. 需求工程、需求分析的具体方式以及实践

    2024-03-29 14:14:01       41 阅读
  3. PGC/UGC/AIGC

    2024-03-29 14:14:01       42 阅读
  4. Nest学习随笔

    2024-03-29 14:14:01       45 阅读