|
|
|
| Есть две базы.
Таблицы в базах имеют идентичные названия, но в структуре таблиц есть небольшие отличия.
Все они сводятся к тому, что в некоторые из таблиц добавлено несколько полей, имеющих значение по умолчанию.
Задача:
Скопировать содержимое одной базы в другую. Отличающиеся поля должны сохранить значение по умолчанию.
Таблиц довольно много, поэтому необходимо как-то автоматизировать эту операцию.
Вторая база изначально не содержит данных, точнее содержит, но их можно сбросить. | |
|
|
|
|
|
|
|
для: Eugene77
(19.09.2008 в 09:19)
| | Просто добавить в базу новые поля "и весь буй до копейки"))
есть функции возвращающие названия полей, сравниваете для одной и для другой таблицы и вставляете в первую отличающиеся поля из второй.
http://www.php.net/manual/ru/book.mysql.php
http://www.php.net/manual/ru/function.mysql-list-tables.php
http://www.php.net/manual/ru/function.mysql-list-fields.php
Или делаете дамп таблицы уничтожаете её, создаёте заново с нужными полями и заливаете базу обратно.
Хотя может я в чём-то и заблуждаюсь, может не всё так просто. | |
|
|
|
|
|
|
|
для: Valick
(19.09.2008 в 09:33)
| | Спасибо за ссылки на функции!
На их основе я смогу написать нужный мне скрипт.
Я, правда, боюсь, что он слишком долго будет работать.
Дело в том, что я пишу скрипт для для аккуратной (без остановки работы форума) замены в нём базы.
Предполагаю приостановить ненадолго работу всех скриптов, которые пишут хоть что-то в базу ,
скопировать за это время все таблицы и изменить конфиг.
После этого разрешить работу скриптов, но уже на основе нового конфига, в котором прописано уже другое имя базы. | |
|
|
|