powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Данные из одних таблиц в другие
9 сообщений из 9, страница 1 из 1
Данные из одних таблиц в другие
    #39706035
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется БД Mysql в которой имена таблиц заданы как кириллицей, например: "Фамилия_сотрудника", так и латиницей, таблиц порядка 200 шт. И есть другая БД с такими же таблицами, но названия уже только на латинице.

Как мне организовать копирование данных из одной БД в другую, может есть готовый парсер или программуля какая?
Заранее благодарю за ответы.
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706041
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выгрузить оба списка имён. Составить таблицу соответствия. Написать процедуру, которая берёт имена попарно и копирует данные.
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706105
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну в принципе да, спасибо, попробую реализовать
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706214
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот думаю может проще выгрузить dump и уже в sql файле заменять названия таблиц.....только вот чем это сделать, что бы списком заменяло
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706219
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не.... так не пойдет..... в таблицах информация в которой также встречаются слова которые совпадают с названиями страниц
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706810
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Born,

Ну не совсем не пойдет. Всё же, ключевые строки для замены имен таблиц обычно начинаются с "INSERT INTO". За этот фрагмент вполне можно зацепиться.
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706984
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал делать вот так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<?php

$bdProd = 'u2';
$bdSource = 'u1';

$connProd = new mysqli('localhost', 'root', 'root', $bdProd);
$connSource = new mysqli('localhost', 'root', 'root', $bdSource);

if ($connProd->connect_error){
    die ('Ошибка: не удается подключиться:'.$connProd->connect_error);
}

else{
    echo 'Соединение установлено! - '.$bdProd.'<br/><br/>';
}

if ($connSource->connect_error){
    die ('Ошибка: не удается подключиться:'.$connSource->connect_error);
}

else{
    echo 'Соединение установлено! - '.$bdSource.'<br/><br/>';
}




if (is_file('table.txt')){
    echo 'Всё ОК!<br/> Файл table.txt обнаружен!<br/>';
    $fileSource = file('table.txt');
$i=0;
    foreach ($fileSource as $str){
            $arTable[$i][]=explode('|',$str);
            $i++;
        }

/*    foreach ($arTable)*/

    echo '<pre>';
/*var_dump($arTable);*/
    echo '</pre>';
}
else{
    echo 'Ошибка! Файл table.txt не существует!';
}

foreach ($arTable as $arrVal){                      /*Удаляем таблицы с названиями в кириллице*/
    foreach($arrVal as $valStr){
        $valTblNameSource = $valStr[0];
        $valTblNameProd = $valStr[1];

        $qDrop = 'DROP TABLE `'.$valTblNameSource.'`';

/*        echo $q.'<br/>';*/
        $result = $connProd->query($qDrop);
        if ($result){
/*            echo 'таблица - '.$valTblNameSource.' удалена <br/>';*/
        }
        else{
            /*echo '<p style=color:red;">Ошибка'.mysqli_error($connSource).'</p><br/>';*/
        }
    }
}



У меня есть файл соответствия таблиц txt-шный который я закидываю в массив и после чего удаляю из БД-2 названия таблиц, которые написаны кириллицей.

Далее мне необходимо в БД-2 скопировать таблицы из БД-1, но уже с новыми названиями. Хочу сделать вот так:
Код: sql
1.
2.
3.
4.
CREATE TABLE table2 LIKE db1.table1;

INSERT INTO table2  
    SELECT * FROM db1.table1; 



Но БД у меня в разных подключениях ($connProd и $connSource) и когда я запускаю запрос под БД-2 естественно он не видит таблиц в БД-1 и выдает ошибку. Помогите плз.
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706987
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предполагалось вообще-то, что всё это будет делаться хранимой процедурой на сервере, а не каким-то ПХП-кодом.
...
Рейтинг: 0 / 0
Данные из одних таблиц в другие
    #39706995
Born
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql процедурой?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Данные из одних таблиц в другие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]