MYSQL 儲存 while

來源:互聯網
上載者:User

標籤:proc   create   表資料   div   朋友   count   行儲存   format   begin   

---恢複內容開始---

群裡一朋友,有一需求就是擷取資料庫所有表的總計(條數)
思路:動態傳入表名, count(1)

-- 1.執行這句。擷取所有表名Create table temp_tb (select t.table_name,@rownum:=@rownum+1 as numfrom information_schema.tables t,(select @rownum:=0 ) bwhere t.table_schema=‘test‘ and table_name not in (‘temp‘,‘temp_tb‘));-- 2.同理擷取表結構,把要統計的結果跟對應的表名放在這個表裡面Create table temp (select t.table_name,@rownum:=@rownum+1 as numfrom information_schema.tables t,(select @rownum:=0 ) bwhere t.table_schema=‘test‘ and table_name not in (‘temp‘,‘temp_tb‘));-- 3.刪除表資料保留表結構delete from temp;-- 4.建立儲存create PROCEDURE WhileLoopProc()BEGINselect @num :=1,@len :=count(1) from temp_tb;while @num<@len doselect @name :=table_name from temp_tb where num =@num;select @rownum := concat(‘select count(1)‘,‘as ‘,@name ,‘ into @temp from ‘, @name); insert into temp(table_name,num) values(@name,@temp); -- 把執行出來的結果儲存到結果表中set @num:=@num+1;prepare stmt from @rownum; EXECUTE stmt;DEALLOCATE PREPARE stmt ; end while;end;-- 5.執行儲存 call WhileLoopProc;-- 6.查詢結果select * from temp;

 

完事!


MYSQL 儲存 while

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.