За последние 24 часа нас посетили 17209 программистов и 1304 робота. Сейчас ищут 1522 программиста ...

Увеличение значение поля в дампе

Тема в разделе "MySQL", создана пользователем MAV, 22 дек 2006.

  1. MAV

    MAV Активный пользователь

    С нами с:
    22 дек 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Горно-Алтайск
    Задача такая: есть дамп одной из mysql-таблиц, сделанный phpmyadmin (именно дамп, доступа к самому mysql-серверу нет). В дампе описано некое поле id (int), и дофига записей, содержащих данные соответственно числового формата в столбце id. Нужно написать php-скрипт, который открывает такой файл дампа, и увеличивает значение id всех записей на определенное число. Как бы такое сделать?
     
  2. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    UPDATE tbl SET id = id + 1
     
  3. MAV

    MAV Активный пользователь

    С нами с:
    22 дек 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Горно-Алтайск
    Дык вот все дело в том, что так не пойдет! В связи с определенными обстоятельствами работать можно (нужно!) только с дампом базы, а не с самой базой.
     
  4. Mavir

    Mavir Guest

    Регулярные выражения помогут.
    Но я бы пошел более простым путем. Создал бы временную БД, туда бы залил, сделал все что нужно и опять создал бы дамп.
     
  5. MAV

    MAV Активный пользователь

    С нами с:
    22 дек 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Горно-Алтайск
    А можно подробнее про регулярные выражения? Лучше с примером :)
     
  6. Mavir

    Mavir Guest

    Поподробнее про регулярный выражения здесь, здесь и здесь

    А если пример,
    PHP:
    1. <?
    2. $a="INSERT INTO `table` SET a=1;
    3. INSERT INTO `table` SET a=5;";
    4.  
    5. function q($matches){
    6.   return $matches[1].($matches[2]+1);
    7. }
    8. print preg_replace_callback('~(a=)([0-9]*)~', "q", $a);
    9. ?>