Guest User

Untitled

a guest
Jan 20th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.46 KB | None | 0 0
  1.   SET @file_name = 'E://result.txt';
  2.   SET @db_name = 'mysql';
  3.  
  4.     CREATE PROCEDURE DumpTable( i INT, db_name VARCHAR(30) )
  5.     BEGIN
  6.        SET @s = CONCAT('SELECT TABLE_NAME INTO @table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA="', db_name, '" LIMIT ', i, ', 1');
  7.        SELECT @s;
  8.        PREPARE stmt1 FROM @s;
  9.        EXECUTE stmt1;
  10.        DEALLOCATE PREPARE stmt1;
  11.        SELECT "Get table name";
  12.        
  13.        SET @s = CONCAT('SELECT * FROM ', @db_name, '.', @TABLE_NAME, ' INTO DUMPFILE "', @file_name, '"');
  14.        SELECT @s;
  15.        PREPARE stmt1 FROM @s;
  16.        SELECT "Prepared to dump";
  17.        EXECUTE stmt1;
  18.        SELECT "Dumped";
  19.        DEALLOCATE PREPARE stmt1;
  20.        SELECT "End of Dump";
  21.     END;
  22.    
  23.     CREATE PROCEDURE doiterate(i INT, tables_count INT, db_name VARCHAR(30))
  24.     BEGIN
  25.       DECLARE i INT;
  26.       SET i = 0;
  27.       SELECT "Dump Data base" AS "Mission", db_name AS "Name", tables_count AS "Tables count";
  28.       label1: LOOP
  29.        SELECT i AS "Iterate";
  30.        CALL DumpTable(i, db_name);
  31.        SELECT "Out of function";
  32.        SET i = i + 1;
  33.         IF i < tables_count THEN ITERATE label1; END IF;
  34.         LEAVE label1;
  35.       END LOOP label1;
  36.       SELECT "End LOOP" AS "Stage";
  37.     END;
  38.    
  39.    SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=@db_name INTO @tables_count;
  40.    
  41.    CALL doiterate(0, @tables_count, @db_name);
  42.    
  43.    DROP PROCEDURE doiterate;
  44.    DROP PROCEDURE DumpTable;
Add Comment
Please, Sign In to add comment