GBase 如何批量清空某資料庫中部分表的資料?
阿新 • • 發佈:2021-01-05
編寫一個儲存過程來實現:
dropprocedureifexiststruncate_tables;
delimiter//
CREATEPROCEDUREtruncate_tables(db_namevarchar(50))//
根據情況可以增加引數
BEGIN
DECLAREdoneINTDEFAULT0;
DECLAREtnamevarchar(50);
DECLAREcur1CURSORFORSELECTtable_namefromINFORMATION_SCHEMA.TABLESWHERE
table_schema=db_name;//
根據情況修改條件
DECLARECONTINUEHANDLERFORSQLSTATE'02000'SETdone=1;
OPENcur1;
REPEAT
FETCHcur1INTOtname;
IFNOTdoneTHEN
set@str=concat('truncatetable',tname);
preparestmt1from@str;
executestmt1;
deallocatepreparestmt1;
ENDIF;
UNTILdoneENDREPEAT;
CLOSEcur1;
END//