Как решить вопрос экспорта базы данных из ДЕНВЕРа (ограничение по вермени)?

Шумадан

Хабарра!!11
Регистрация
6 Фев 2008
Сообщения
1.746
Реакции
2.208
Вопрос - а есть ли команда на полное очищение базы - вернее вообще удаления всех строк а потом уже импортирование?
просто приходится заходить в админку баз - там удалять все строки а потом уже импортировать
задача миновать заход в админку
можно написать простой sql скрипт по TRUNCATE всех таблиц, и выполнять/вызывать его непосредственно перед импортом
 

lightman555

Гуру форума
Регистрация
7 Мар 2013
Сообщения
326
Реакции
63
Если не сложно мог ли бы написать что должно быть в скрипте? - я в этом мало что понимаю :(
 

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
889
Реакции
238
Вопрос - а есть ли команда на полное очищение базы - вернее вообще удаления всех строк а потом уже импортирование?
просто приходится заходить в админку баз - там удалять все строки а потом уже импортировать
задача миновать заход в админку
Под строками ты имеешь в виду таблицы?
Вот когда ты удаляешь в pma - ты же видишь вопрос, который тебе задается для подтверждения? "Действительно выполнить DROP TABLE ..." и дальше где ... идет перечисление таблиц.
Если ты снимаешь дамп базы через pma, там можно задать опцию, и перед каждой таблицей будет стоять DROP TABLE IF EXISTS
А вот если через mysqldump, то при дефолтных установках строка DROP TABLE IF EXISTS добавляется сама.
пс. да, может быть, неправильно тебя понял - разница большая, очистить таблицы или удалить таблицы, но, главное, чтобы ты понимал сам, что тебе надо
 

lightman555

Гуру форума
Регистрация
7 Мар 2013
Сообщения
326
Реакции
63
Я захожу в pma - выбираю базу и удаляю вообще все из нее - тоесть все таблицы (строки) и содержимое так что не остается ничего
а потом уже через mysqldump импортирую базу
я просто хотел миновать процесс захода в pma и написать батник в котором прописать команду сноса базы (но оставления ее названия) а потом уже ипортирование (желательно в том же батнике) дампа базы
вот что мне нужно :)

Кстати вопрос еще один назрел - а реально ли на Денвере поставить Memcached ?
Просто на самом сервер запустил его а в денвере его естественно нет - не будет ли кофликта каждый раз обмениваясь базами?
 

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
889
Реакции
238
Я захожу в pma - выбираю базу и удаляю вообще все из нее - тоесть все таблицы (строки) и содержимое так что не остается ничего
я просто хотел миновать процесс захода в pma и написать батник в котором прописать команду сноса базы (но оставления ее названия) а потом уже ипортирование (желательно в том же батнике) дампа базы
вот что мне нужно :)
Значит тебе нужно как раз DROP TABLE - насчет батника не знаю, да и зачем он тебе? В pma в разделе структура поставить чекбокс возле добавить DROP TABLE, если же mysqldump, так там автоматом...
а потом уже через mysqldump импортирую базу
Ты походу запутался - через mysqldump - экспорт базы в файл, через mysql - импорт из файла (из дампа) в базу.
как вариант
Для просмотра ссылки Войди или Зарегистрируйся

насколько помню билда мемкеша для виндовз нет, он только под никсы
надо не забыть добавить, что приведенный тобой скрипт для виндовс тоже не подойдет :D
 
Последнее редактирование:

Шумадан

Хабарра!!11
Регистрация
6 Фев 2008
Сообщения
1.746
Реакции
2.208
надо не забыть добавить, что приведенный тобой скрипт для виндовс тоже не подойдет :D
тада, видно идеи мало :crazy:
Код:
SET FOREIGN_KEY_CHECKS = 0;
SET GROUP_CONCAT_MAX_LEN=32768;
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
  FROM information_schema.tables
  WHERE table_schema = (SELECT DATABASE());
SELECT IFNULL(@tables,'dummy') INTO @tables;

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1;

хотя проще создать дамп, где перед созданием таблички будут удаляться
 

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
889
Реакции
238
тада, видно идеи мало :crazy:
Код:
SET FOREIGN_KEY_CHECKS = 0;
SET GROUP_CONCAT_MAX_LEN=32768;
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
  FROM information_schema.tables
  WHERE table_schema = (SELECT DATABASE());
SELECT IFNULL(@tables,'dummy') INTO @tables;

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1;

хотя проще создать дамп, где перед созданием таблички будут удаляться
Я ж об этом и говорю.
А еще в sypex dumper таблицы дропаются при восстановлении, может быть полезно например в ситуации, когда под рукой есть только дамп, снятый pma, в котором DROP TABLE отсутствуют.
цитата с форума sypex dumper:
DROP TABLE просто не добавляется в файл дампа, при востановлении дампер автоматически выполняет DROP TABLE если была выбрана стратегия восстановления CREATE+INSERT (она выбрана по умолчанию).
Бывает очень полезно в случаях больших баз, которые pma не переваривает, а прямого доступа к mysql бд нет - а таких вариантов на шаред-хостингах полно...
 

JoKeR_13

Создатель
Регистрация
4 Июн 2013
Сообщения
35
Реакции
22
Есть замечательна бесплатная (для некоммерческого использования) программа dbForge Studio for MySQL Для просмотра ссылки Войди или Зарегистрируйся
 
Сверху