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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование данных из одной таблицы в другую 
:(
    Опции темы
Sl@va
  Дата 5.4.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 22.11.2004
Где: Нижний Новгород

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



Здравствуйте !
Нужно перенести часть данный из одной таблицы в другую. Структура обоих таблиц идентична. Перенести данные нудно не все сразу, а по одной записи за раз из таблицы POST в таблицу POST2 и только те записи, у которых поле 
'date` < '2008-01-01 11:37:38' 
Ни как не могу составить правильно SQL запрос.

SELECT * FROM `POST` WHERE `date` < '2008-01-01 11:37:38' LIMIT 0 , 1;
запрос выборки данных.

Нашел что нужно использовать INSERT INTO для вставки данных из одной таблицы в другую. Но вот как все правильно это написать ...
PM MAIL WWW ICQ Skype   Вверх
DimW
Дата 5.4.2010, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(Sl@va @  5.4.2010,  12:04 Найти цитируемый пост)
а по одной записи за раз 

почему это так принципиально?

Добавлено через 1 минуту и 39 секунд
если это не так важно то:
Код

insert into `post2`
(SELECT * FROM `POST` WHERE `date` < '2008-01-01 11:37:38' );

PM MAIL ICQ   Вверх
Sl@va
Дата 5.4.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 22.11.2004
Где: Нижний Новгород

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



Просто скрипт будет запускаться на сервере через CRON каждые 30 секунд, чтобы не ощущалась нагрузка.
PM MAIL WWW ICQ Skype   Вверх
DimW
Дата 5.4.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



в таком случае:
Код

insert into post2
(select *
   from (select *
           from post
          where date < '2008-01-01 11:37:38'
         minus
         select *
           from post2) 
 limit 0,1);


запрос берет все данные из таблицы post, затем исключает данные которые уже были добавлены в post2, затем из полученного результата берет одну строку и добавляет ее в post2.

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


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(DimW @  5.4.2010,  15:40 Найти цитируемый пост)
но учтите, я этого не предлогал, вы сами захотели  smile  

 smile
Цитата(Sl@va @  5.4.2010,  15:23 Найти цитируемый пост)
Просто скрипт будет запускаться на сервере через CRON каждые 30 секунд, чтобы не ощущалась нагрузка. 

выглядит как-то подозрительно...копирование таблицы каждые 30 секунд...можно поинтересоваться зачем?

Это сообщение отредактировал(а) azesmcar - 5.4.2010, 15:43
PM   Вверх
DimW
Дата 5.4.2010, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(azesmcar @  5.4.2010,  15:42 Найти цитируемый пост)
можно поинтересоваться зачем?

для того, что бы растянуть удовольствие smile
PM MAIL ICQ   Вверх
azesmcar
Дата 5.4.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(DimW @  5.4.2010,  15:44 Найти цитируемый пост)
для того, что бы растянуть удовольствие smile 

тоже мне удовольствие smile 
PM   Вверх
DimW
Дата 5.4.2010, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(azesmcar @  5.4.2010,  15:45 Найти цитируемый пост)
тоже мне удовольствие smile  


ну так круто же, сидишь такой, участвуешь в процессе так сказать, главное что бы время формирования одной записи не привысило 30 сек. а то удовольствие в истерику может превратиться  smile 
PM MAIL ICQ   Вверх
Akina
Дата 5.4.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Если, копируя раз в 30 секунд по ОДНОЙ записи (2880 в сутки, порядка миллиона в год), реально дождаться переноса ВСЕХ записей - то нефиг валять дурака, переноси все записи сразу. 


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

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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