Как скопировать таблицу MySQL в другую в CakePHP? - PullRequest
0 голосов
/ 01 февраля 2011

Может ли кто-нибудь подсказать мне, как я могу скопировать одну таблицу mysql в другую таблицу в той же базе данных, используя cakephp, пожалуйста, дайте мне пример запроса, если это возможно.

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011
create table new_table like your_table;
insert into new_table select * from your_table;

Выше будет сохранен индекс для new_table

create table new_table select * from your_table;

Вышеуказанное не сохранит индекс.
С CakePHP ничего не нужно делать, просто нужен правильный синтаксис sql,
плюс соответствующая настройка соединения, позволяющая php подключаться к mysql

2 голосов
/ 01 февраля 2011

Если это быстрая и грязная однократная копия, я бы просто зациклился на записях исходной таблицы и создал новые целевые записи:

$source = $this->Source->find('all');
foreach($source as $sRec)
{
    $this->Target->create();
    $targetData = array();
    $target['Target']['field1'] = $sRec['Source']['field1'];
    $target['Target']['field2'] = $sRec['Source']['field2'];
    //etc
    $this->Target->save($targetData);
}

Извиняюсь, если она глючит, я просто ее разорил.

Отредактировано для отображения условного выбора строки.Что-то вроде:

$toCopy = array(1,32,71,72,73);
foreach($toCopy as $anId)
{
    $sRec = $this->Source->read(null,$anId);
    $this->Target->create();
    $targetData = array();
    $target['Target']['field1'] = $sRec['Source']['field1'];
    $target['Target']['field2'] = $sRec['Source']['field2'];
    //etc
    $this->Target->save($targetData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...