parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Mysqldump на парсере

Sanja v.2 15.03.2004 16:54

Кривое решение, применял, когда доступа по порту 3306 не было.

Не будет работать на больших таблицах, когда памяти не хватит сделать SELECT *;

Создаёт в текущей папке несколько *.sql файлов по именам таблиц. Их можно забрать по FTP.
@main[]

$dbname[название_БД]

$response:content-type[
        $.value[text/html]
        $.charset[windows-1251]
]

$spacer[^taint[^#0A]#############^taint[^#0A]]
$date_now[^date::now[]]


$eol[^table::create[nameless]{^taint[^#0A]	\n
'	\'
"	\"}]

	^dbconnect{
		^void:sql{FLUSH TABLES}
		$tables[^table::sql{SHOW TABLES}]
		$tables_columns[^tables.columns[]]
		^tables.menu{

			$sql[
			#
 			# Database $dbname exported ^date_now.sql-string[]
			#

#			### Table structure for $tables.Tables_in_$dbname Table ###
			DROP TABLE IF EXISTS $tables.Tables_in_$dbname^;
			$create[^table::sql{SHOW CREATE TABLE $tables.Tables_in_$dbname}]		
			^create.menu{
				${create.Create Table}^;
			}
			$create[]
			$spacer
			^if($tables.Tables_in_$dbname eq "таблица_данные_из_которой_нам_не_нужны_нахрен" ||
			    $tables.Tables_in_$dbname eq "другая_таблица_данные_из_которой_нам_не_нужны_нахрен"			    
			){ }{
			### Data for $tables.Tables_in_$dbname Table ###
			$current[^table::sql{SELECT * FROM $tables.Tables_in_$dbname}]
			$current_columns[^current.columns[]]
			^current.menu{INSERT INTO $tables.Tables_in_$dbname VALUES(^current_columns.menu{ $thiscolumn[$current_columns.column] $this[$current.$thiscolumn] $this[^this.replace[$eol]] '$this'}[,])^;
			}
			
			}
			
			$spacer
			
			]

			$sql[^untaint[optimized-as-is]{$sql}]
			^sql.save[./${tables.Tables_in_$dbname}_dump.sql]
			$sql[]
#			Раскомментируйте, если ваша версия парсера это поддерживает!!!!!!
#			^memory:compact[]

		}
	}


<h1>Finished exporting at ^date_now.sql-string[] </h1>