Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2015, 20:19   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
Печаль Экспорт всего из базы в базу

Ситуация вот в чём.
У меня есть две базы, одна старая, другая новая, назовём их просто: Old и New. Кол-во и название таблиц, в обоих базах одинаково
Далее ...
Мне необходимо, очистить все таблицы в базе Old, и записать в них всё что имеется в таблицах базы New.
т.е. если поле автоинкрементно в базе New, то после всех манипуляций оно так же должно быть автоинкрементно и базе Old (куда, я её и буду копировать). В общем, абсолютно все параметры должны быть перенесены из одной базы в другую.
Вопрос, как мне этого добиться ? Очень надеюсь на вашу помощь.. спасибо
Janger вне форума Ответить с цитированием
Старый 15.10.2015, 20:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как мне этого добиться ?
Бэкап выгрузи из New, и загрузи в Old. ИМХО самое быстрое решение.
Цитата:
очистить все таблицы в базе Old, и записать в них всё что имеется в таблицах базы New.
А можно полюбопытствовать - зачем такой геморр?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.10.2015, 20:49   #3
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А можно полюбопытствовать - зачем такой геморр?
Можно.
Имеется 2-а ПК, на первом ПК стоит сам сервер, а другой ПК к нему коннектится. ПК с сервером, находится у сис.-админа.
Понятное дело, каждый раз просить системника, что бы он заменил файл с моей БД со старой на новую, как то перебор, да и у него дел своих полно.
================
Он мне расшарил папку, где находится файл БД (это я его попросил, т.к. не хотел морочиться с запросами, и думал одной строкой отсоединю старую БД, а вторым запросом присоединю новый файл БД, и всё тут. Но как оказалось, я БД старую смог отсоединить, но присоединить новую не смог, т.к. у меня на это не было прав ... хз )
=================
В общем, я и подумал, что самый простой способ, это взять старую БД опустошить её (оставив только каркас), да и залить в неё параметры и данные из новой БД

Цитата:
Сообщение от Stilet Посмотреть сообщение
Бэкап выгрузи из New, и загрузи в Old. ИМХО самое быстрое решение.
Честно сказать, я не особо понимаю как это "загрузить бэкап" в БД ...
p.s. если что, то на 2ПК, вообще нету SQL Server-a, там стоит только какой то HeidySQL который коннектится к ПК сисадмина, и я там могу выполнять запросы.

Последний раз редактировалось Stilet; 16.10.2015 в 06:51.
Janger вне форума Ответить с цитированием
Старый 15.10.2015, 21:30   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

RESTORE и BACKUP если что тоже SQL-команды. Только полномочия соответствующие требуются
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.10.2015, 21:41   #5
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

А может быть, мне кто нибудь напишет запрос по моей просьбе?
Я просто не уверен, что у меня есть какие то особые права.
p.s.
я наткнулся в инете вот на такой код:
Код:
SELECT * INTO newtable FROM oldtable
и подумал, может поступить следующим образом?
1) Очищаем все таблицы из старой БД - OLD
Код:
 - DELETE FROM TableName1
 - DELETE FROM TableName2
 - DELETE FROM TableName3
 - DELETE FROM TableName4
2) Заливаем данные из новой БД в старую - NEW-->OLD
Код:
 - SELECT * INTO OLD.tablename1 FROM NEW.tablename1
 - SELECT * INTO OLD.tablename2 FROM NEW.tablename2
 - SELECT * INTO OLD.tablename3 FROM NEW.tablename3
 - SELECT * INTO OLD.tablename4 FROM NEW.tablename4
================
ну вот, как то так... Не знаю, получился ли что то из этого или нет....
Может кто нибудь в курсе, может кто то подскажет, следует так делать или нет? и почему?
================
Я вот подумал, похоже единственное что может пойти не так, так это очистка и заполнение автоинкрементных полей... я думаю, что ключи могут сбиться... хотя, я не уверен на 100% ...

Последний раз редактировалось Janger; 15.10.2015 в 22:13.
Janger вне форума Ответить с цитированием
Старый 15.10.2015, 23:52   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
я думаю, что ключи могут сбиться
Обязательно, если в источнике хоть одна запись удалена или скрипт на запись не в том порядке инфу подсунет. И вообще так ни кто не делает. Restore и Backup
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2015, 06:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Понятное дело, каждый раз просить системника, что бы он заменил файл с моей БД со старой на новую
Ты вопрос не понял )
Зачем делать замену данных?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2015, 08:49   #8
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Ну как зачем? Программа ведь не работает со старой бд... Будут постоянно ошибки выводиться, мол, такого моля нету
Janger вне форума Ответить с цитированием
Старый 16.10.2015, 09:12   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Программа ведь не работает со старой бд...
Цитата:
абсолютно все параметры должны быть перенесены из одной базы в другую.
Значит ХОТЯ БЫ ОДИН параметр да ДОЛЖЕН различаться.
К примеру новое (или переименованное) поле в одной из таблиц.
Цитата:
Будут постоянно ошибки выводиться, мол, такого моля нету
что и требовалось доказать.


Привести структуру СТАРОЙ бд к новой с помощью SQL и не мучиться ни с переподключением ни с переносом данных.
примерно так
Код:
ALTER TABLE xxx 
ADD COLUMN newfield .....
перед изменением структуры всегда желателен backup.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 16.10.2015 в 09:19.
evg_m вне форума Ответить с цитированием
Старый 16.10.2015, 10:10   #10
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

В общем сижу...
Backup БД я делаю
Но вот когда пытаюсь сделать Restore, то мне выдаётся, что мол, прав у меня недостаточно для такого запроса
Janger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из excel в базу MySQL средствами VBA riko_ltd Microsoft Office Excel 5 18.06.2013 01:50
Экспорт базы данных с сайта на мой реальный комп Kasper1 PHP 7 27.02.2011 13:37
импорт, экспорт базы TaTT DoGG SQL, базы данных 2 12.05.2010 12:15