MySQL数据库动态行转列的实现方法_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

MySQL数据库动态行转列的实现方法

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:方法实现动态数据库
黑客防线网安网讯:    网上的都是一些静态的,用CASE WHEN结构实现。所以我写了一个动态的。 SP 代码: DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`sp_row_column_wrap`$$ CREATE DEFINER=`root`@`local...

    网上的都是一些静态的用CASE WHEN结构实现所以我写了一个动态的

SP 代码:

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`sp_row_column_wrap`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_row_column_wrap`(IN $schema_name varchar(64),
IN $table_name varchar(64))
BEGIN
  declare cnt int(11);
  declare $table_rows int(11);
  declare i int(11);
  declare j int(11);
  declare s int(11);
  declare str varchar(255);
  -- Get the column number of the table
  select count(1) from information_schema.columns where
table_schema=$schema_name and table_name=$table_name into cnt;
  -- Get the row number of the table
  select table_rows from information_schema.tables where

table_schema = $schema_name and table_name=$table_name into $table_rows;
  -- Check whether the table exists or not
  drop table if exists test.temp;
  create table if not exists test.temp (`1` varchar(255) not null);
  -- loop1 start
  set i = 0;
  loop1:loop
    if i = $table_rows-1 then
      leave loop1;
    end if;
    set @stmt1 = concat(’alter table test.temp add `’,i+2,’` varchar(255) not null’);
    prepare s1 from @stmt1;
    execute s1;
    deallocate prepare s1;
    set @stmt1 = ’’;
    set i = i + 1;
  end loop loop1;
  -- loop1 end;
  set s = 0;
  -- loop2 start
  loop2:loop
  -- leave loop2
    if s=cnt then
      leave loop2;
    end if;
    set @stmt2 = concat(’select column_name from information_schema.columns where table_schema="’,$schema_name,
                        ’" and table_name="’,$table_name,’" limit ’,s,’,1 into @temp;’);
    prepare s2 from @stmt2;
    execute s2;
    deallocate prepare s2;
    set @stmt2 = ’’;
    set j=0;
    set str = ’ select ’;
    -- Loop3 start
    loop3:loop 
      if j = $table_rows then
        leave loop3;
      end if;

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-8798-1.html
网站维护教程更新时间:2012-03-20 05:01:16  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer