Как редактировать .sql-файл, чтобы им вставлять данные в БД, а не только структуру?
Как подредактировать тот файл, чтобы и данные вставлялись? Есть для этого какие-нибудь программы, которыми это можно быстро осуществить?
Как по мне, так проще одну собственную регулярку написать, чем искать готовые программы. Покажите дамп, если структура относительно простая, то это самый лучший вариант, я думаю.
Вот такой дамп (понял, что таблицы information_schema не нужны - убрал):
Дык, насколько я помню синтаксис, mysql схавает запрос, если тупо просто UPDATE заменить на INSERT INTO. В общем, да, тут достаточно одной регулярки - для замены UPDATE на INSERT и отсечения "WHERE ..."
Код:
<?php
$fp = fopen('__RESTORE__.sql', 'r');
$fp_new = fopen('__RESTORE__new.sql', 'w');
if ($fp && $fp_new) {
while (!feof($fp)) {
$s = fgets($fp);
fprintf($fp_new, "%s", preg_replace('/^UPDATE `(.+)`(.+) WHERE.+$/Usi', 'INSERT INTO `\1` \2;', $s));
}
fclose($fp);
fclose($fp_new);
} else
echo 'An error occured while opening files.';
?>
$fp = fopen('__RESTORE__.sql', 'r');
$fp_new = fopen('__RESTORE__new.sql', 'w');
if ($fp && $fp_new) {
while (!feof($fp)) {
$s = fgets($fp);
fprintf($fp_new, "%s", preg_replace('/^UPDATE `(.+)`(.+) WHERE.+$/Usi', 'INSERT INTO `\1` \2;', $s));
}
fclose($fp);
fclose($fp_new);
} else
echo 'An error occured while opening files.';
?>