Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET @file_name = 'E://result.txt';
- SET @db_name = 'mysql';
- CREATE PROCEDURE DumpTable( i INT, db_name VARCHAR(30) )
- BEGIN
- SET @s = CONCAT('SELECT TABLE_NAME INTO @table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA="', db_name, '" LIMIT ', i, ', 1');
- SELECT @s;
- PREPARE stmt1 FROM @s;
- EXECUTE stmt1;
- DEALLOCATE PREPARE stmt1;
- SELECT "Get table name";
- SET @s = CONCAT('SELECT * FROM ', @db_name, '.', @TABLE_NAME, ' INTO DUMPFILE "', @file_name, '"');
- SELECT @s;
- PREPARE stmt1 FROM @s;
- SELECT "Prepared to dump";
- EXECUTE stmt1;
- SELECT "Dumped";
- DEALLOCATE PREPARE stmt1;
- SELECT "End of Dump";
- END;
- CREATE PROCEDURE doiterate(i INT, tables_count INT, db_name VARCHAR(30))
- BEGIN
- DECLARE i INT;
- SET i = 0;
- SELECT "Dump Data base" AS "Mission", db_name AS "Name", tables_count AS "Tables count";
- label1: LOOP
- SELECT i AS "Iterate";
- CALL DumpTable(i, db_name);
- SELECT "Out of function";
- SET i = i + 1;
- IF i < tables_count THEN ITERATE label1; END IF;
- LEAVE label1;
- END LOOP label1;
- SELECT "End LOOP" AS "Stage";
- END;
- SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=@db_name INTO @tables_count;
- CALL doiterate(0, @tables_count, @db_name);
- DROP PROCEDURE doiterate;
- DROP PROCEDURE DumpTable;
Add Comment
Please, Sign In to add comment