Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужно сделать копию таблицы 
:(
    Опции темы
Geser
Дата 20.1.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



Есть таблица с данными. Нужно сделать ее полную копию. 
Как это можно сделать?
Через SELECT INSERT не хотелось бы т.к. слишком много доп.манимуляций с бд.
ЗЫ:таблиц много.

PM MAIL   Вверх
Akina
Дата 20.1.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Backup Table / Restore Table

а быстрее всего mysqlhotcopy 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Geser
Дата 20.1.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



Забыл сказать - интересует только sql-запрос.
Всякие тулзы не подходят т.к. будет на подобие предустановленного скрипта.
PM MAIL   Вверх
Akina
Дата 20.1.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Backup Table / Restore Table - это TSQL.
mysqlhotcopy - это предустановленный в составе MySQL скрипт.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sergejzr
Дата 20.1.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Код

CREATE TABLE tab1 SELECT * FROM tab2;

Правда индексы придётся самому ставить. Дa и не быстрее это первого варианта..


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Geser
Дата 20.1.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



Akina, а mysqlhotcopy в php-скрипт запихнуть можно? smile Насколько я понимаю - нет.
Я же выше написал, что мне нужен чистый sql-запрос
sergejzr, т.е.?

Это сообщение отредактировал(а) Geser - 20.1.2007, 14:32
PM MAIL   Вверх
Rodman
Дата 20.1.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

SELECT *
INTO MyNewTable
FROM MyTable

PM MAIL WWW Skype GTalk YIM MSN   Вверх
sergejzr
Дата 20.1.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Цитата(Geser @  20.1.2007,  13:31 Найти цитируемый пост)
sergejzr, т.е.?

Данные скопируются, а индексы нет.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Geser
Дата 20.1.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



sergejzr, уже вижу. Но не смотря на это, такой вариант более предпочтителен, чем тот что предложил Rodman.
Индексы создавать руками не хотелось бы. smile 
PM MAIL   Вверх
sergejzr
Дата 20.1.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Цитата(Geser @  20.1.2007,  13:44 Найти цитируемый пост)
Индексы создавать руками не хотелось бы

Если у тебя пхп, то сперва селектируй "SHOW CREATE TABLE" это тебе даст полностью запрос для создания. Заменишь там имя таблицы и выполнишь его.
А потом 
"SELECT * INTO MyNewTable FROM MyTable", как предложил Rodman, или 

"INSERT INTO tab2 SELECT * FROM tab1"

В любом случае это правильные варианты. По скорости не отличаются от работы с дампом


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Geser
Дата 20.1.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



Сенк, попробуем...
А Rodman вариант не работает(ругается на имя новой таблицы, которая не создана). 

Это сообщение отредактировал(а) Geser - 20.1.2007, 14:57
PM MAIL   Вверх
Rodman
Дата 20.1.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ну так конечно ругаться будет... этот запрос не предусматривает создание таблицы, только выборку и добавление данных...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Geser
Дата 20.1.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2006

Репутация: нет
Всего: нет



Ну вот поэтому он мне и не подошел. smile 
PM MAIL   Вверх
muzer
Дата 20.1.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



Rodman, в очередной (на моей памяти четрвёртый) раз полный бред говорите. MySQL такого синтаксиса даже не поддерживает (http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-select-into-table.html). У вас в голове какая-то каша.

Geser
Самый быстрый способ, это конечно же, манипуляция с файлами, а не с помоющью запросов.

Классический способ запросами: 
CREATE TABLE tablecopy LIKE table;
ALTER TABLE tablecopy DISABLE KEYS;
INSERT INTO tablecopy SELECT * FROM table;
ALTER TABLE tablecopy ENABLE KEYS;
PM WWW   Вверх
Rodman
Дата 20.1.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



muzer, я не работаю на прямую только с СУБД... я обрабатываю данные программно и тем самым формирую запросы циклические или еще какие нить... 

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

если хочешь я всех буду тебе направлять... чтоб у тебя голова не болела за меня...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.