SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.08.2011 08:04:46

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Добавить в таблицу записи которых в ней ещё нет

Здравствуйте..
У меня есть две почти одинаковые таблицы, одна типа MEMORY (mem_tb) и MyISAM (tb, в ней больше столбцов чем в mem_tb) при работе программы mem_tb периодически пополняется, а в конце обработки необходимо скинуть mem_tb в tb.
Как можно запись в tb записи которых в ней ещё нет? плюс ещё необходимо обновить пару столбцов.

Можно было бы очистить tb и просто по вставлять записи из mem_tb, однако с mem_tb могут произойти ошибки при вставке в неё новых записей.. таким образом можно потерять много записей. Записей пока 1 600 000

Неактивен

 

#2 03.08.2011 16:16:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Добавить в таблицу записи которых в ней ещё нет

insert ignore into tb (..) select .. from mem_tb

плюс уникальный ключ на поля по которым определяется уникальность

Неактивен

 

#3 03.08.2011 18:57:10

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Добавить в таблицу записи которых в ней ещё нет

INSERT INTO tb SELECT * FROM mem_tb WHERE id>(SELECT MAX(id) FROM tb);      


Поподробней опишите задачу, можно будет более точный запрос сформировать.

Неактивен

 

#4 03.08.2011 20:13:19

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: Добавить в таблицу записи которых в ней ещё нет

Спасибо) но insert ignore то что нужно а столбцы легче другим запросом обновить)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson