MySQL利用存储过程清除所有表中的所有记录
生活随笔
收集整理的這篇文章主要介紹了
MySQL利用存储过程清除所有表中的所有记录
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MySQL利用存儲過程清除所有表中的所有記錄
在使用MySQL過程中,難免會出現(xiàn)一些測試數(shù)據(jù),然而這些測試數(shù)據(jù)在真正部署運(yùn)行的時(shí)候,通常要被清楚掉,并且自增長的字段要回復(fù)初始值。如何高效快速的實(shí)現(xiàn)以上功能,可以使用存儲過程實(shí)現(xiàn)這一個(gè)功能。
主要使用:TRUNCATE TABLE。不僅可以清楚數(shù)據(jù),而且可以使自增長字段歸為1:
BEGINDECLARE strClear VARCHAR(256);DECLARE done INT DEFAULT 0;#定義游標(biāo)DECLARE curOne CURSOR FOR SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') as ClearTable FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DBName;#綁定控制變量到游標(biāo),游標(biāo)循環(huán)結(jié)束自動轉(zhuǎn)為TrueDECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;#打開游標(biāo)OPEN curOne;FETCH curOne INTO strClear;REPEATFETCH curOne INTO strClear;#SELECT strClear;#動態(tài)執(zhí)行SQL語句SET @mysql = strClear;PREPARE stmt from @mysql;EXECUTE stmt;DEALLOCATE PREPARE stmt;UNTIL done = 1 END REPEAT;#關(guān)閉游標(biāo)CLOSE curOne; END執(zhí)行存儲過程之前:
執(zhí)行存儲過程之后:
原文地址http://www.bieryun.com/3535.html
總結(jié)
以上是生活随笔為你收集整理的MySQL利用存储过程清除所有表中的所有记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轮播插件swiper.js?
- 下一篇: robot framework安装