Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Глобальная замена в MySQL

Ответить
Настройки темы
MySQL - Глобальная замена в MySQL

Новый участник


Сообщения: 11
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Прошу помощи!
Задача: требуется в базе данных MySQL Форума заменить один email на другой. Например: aaa@gmail.com на bbb@gmail.com Адрес встречается более 1000 раз, во многих таблицах, заменять его вручную и долго, и чревато ошибками. Так что поиск и замену нужно делать во всех таблицах. Простейший способ — сделать замену в текстовом редакторе не проходит, при восстановлении — ошибка запроса SQL. Размер бэкапа — 64 МБ, сам файл — около 200 МБ. Бэкап и восстановление делались с помощью утилиты Sypex Dumper Lite.

Отправлено: 20:05, 05-04-2010

 

Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
UPDATE
    `table`
SET
    `mail` = 'bbb@gmail.com'
WHERE
    `mail` = 'aaa@gmail.com'

Отправлено: 20:12, 05-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не проходит: #1146 - Table 'nozdrin_forumvb.table' doesn't exist

Отправлено: 20:27, 05-04-2010 | #3


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


`table` - имя таблицы, где производится замена (надо подставить свое значение).

Отправлено: 20:32, 05-04-2010 | #4


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я не знаю, в каких таблицах нужно делать замену, их много. Можно ли сделать запрос так, чтобы по всем таблицам поиск и замена прошли?
Всего таблиц 112, так что перебирать их все -- всё равно, что вручную заменять.
попробовал поставить имя первой попавшейся таблицы vb3_access и получил: #1054 - Unknown column 'mail' in 'where clause'

Последний раз редактировалось interlit, 05-04-2010 в 20:46.


Отправлено: 20:36, 05-04-2010 | #5


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


имхо только [php-]скрипт... есть запросы SHOW TABLES, SHOW COLUMNS, с помощью которых можно пройтись по всем полям базы и по каждому сделать UPDATE...

Отправлено: 20:57, 05-04-2010 | #6


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нда... Увы, я не программист и сие мне недоступно. Но всё равно спасибо.

Отправлено: 21:07, 05-04-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Глобальная замена в MySQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
V. 5.5/2000/2003 - Глобальная Адресная книга и контакты Notsaint Microsoft Exchange Server 1 06-08-2009 08:14
Глобальная переменная 11943499 AutoIt 9 23-07-2009 20:58
Debian/Ubuntu - Глобальная локалка или с чего начать !!! 9gramm Общий по Linux 2 12-02-2009 15:00
Глобальная проблема с Aspire 5102 WLMi Торквемада Ноутбуки 31 23-12-2008 14:35
Глобальная адресная книга. sova_sergey Microsoft Exchange Server 6 15-08-2008 12:27




 
Переход