Глобальная замена в MySQL
Прошу помощи!
Задача: требуется в базе данных MySQL Форума заменить один email на другой. Например: aaa@gmail.com на bbb@gmail.com Адрес встречается более 1000 раз, во многих таблицах, заменять его вручную и долго, и чревато ошибками. Так что поиск и замену нужно делать во всех таблицах. Простейший способ — сделать замену в текстовом редакторе не проходит, при восстановлении — ошибка запроса SQL. Размер бэкапа — 64 МБ, сам файл — около 200 МБ. Бэкап и восстановление делались с помощью утилиты Sypex Dumper Lite.
|
Код:
UPDATE
`table`
SET
`mail` = 'bbb@gmail.com'
WHERE
`mail` = 'aaa@gmail.com'
|
Не проходит: #1146 - Table 'nozdrin_forumvb.table' doesn't exist
|
`table` - имя таблицы, где производится замена (надо подставить свое значение).
|
Я не знаю, в каких таблицах нужно делать замену, их много. Можно ли сделать запрос так, чтобы по всем таблицам поиск и замена прошли?
Всего таблиц 112, так что перебирать их все -- всё равно, что вручную заменять.
попробовал поставить имя первой попавшейся таблицы vb3_access и получил: #1054 - Unknown column 'mail' in 'where clause'
|
имхо только [php-]скрипт... есть запросы SHOW TABLES, SHOW COLUMNS, с помощью которых можно пройтись по всем полям базы и по каждому сделать UPDATE...
|
Нда... Увы, я не программист и сие мне недоступно. Но всё равно спасибо.
|
Время: 12:53.
© OSzone.net 2001-