Сравнить данные
От: peter6636  
Дата: 17.11.06 10:36
Оценка:
строка из файла:
zzz 3333
строка в БД:
zzz ssss
обновляю запись в базе данных:
1) update ... set ip=3333 where мак=zzz and ip=ssss
Дальше беру следующую строчку из файла,например она равна:

zzz pppp
делаю запрос:
2) update ... set ip=pppp where мак=zzz and ip=ssss
в результате один завпрос 2) перекрывает запрос 1), как избавится от этого


17.11.06 13:43: Перенесено модератором из 'Java' — Blazkowicz
Re: Сравнить данные
От: yoriсk.kiev.ua  
Дата: 17.11.06 10:41
Оценка:
Здравствуйте, peter6636, Вы писали:

P>строка из файла:

P>zzz 3333
P>строка в БД:
P> zzz ssss
P>обновляю запись в базе данных:
P>1) update ... set ip=3333 where мак=zzz and ip=ssss
P>Дальше беру следующую строчку из файла,например она равна:

P>zzz pppp

P>делаю запрос:
P>2) update ... set ip=pppp where мак=zzz and ip=ssss
P>в результате один завпрос 2) перекрывает запрос 1), как избавится от этого
P>


1) А почему это в java?
2) Чего вы хотите достчь?
3) (Очень общая очевидная рекомендация) хотите, что-бы запросы не — исспользуйте какой-то уникатьный идентификатор.
Re: Сравнить данные
От: Blazkowicz Россия  
Дата: 17.11.06 10:43
Оценка:
Здравствуйте, peter6636, Вы писали:

P>строка из файла:

P>zzz 3333
P>строка в БД:
P> zzz ssss
P>обновляю запись в базе данных:
P>1) update ... set ip=3333 where мак=zzz and ip=ssss
P>Дальше беру следующую строчку из файла,например она равна:

P>zzz pppp

P>делаю запрос:
P>2) update ... set ip=pppp where мак=zzz and ip=ssss
P>в результате один завпрос 2) перекрывает запрос 1), как избавится от этого
P>

Разобратся с транзакциями и concurrency в базе. Как вариант SELECT FOR UPDATE.
Re[2]: Сравнить данные
От: Alex.Che  
Дата: 17.11.06 10:44
Оценка:
Привет, Blazkowicz!
Вы пишешь 17 ноября 2006:

B> Разобратся с транзакциями и concurrency в базе.

B> Как вариант SELECT FOR UPDATE.

СУБД абстрактная?

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.0
Re[2]: Сравнить данные
От: peter6636  
Дата: 17.11.06 10:56
Оценка:
Здравствуйте, yoriсk.kiev.ua, Вы писали:

YKU>Здравствуйте, peter6636, Вы писали:


P>>строка из файла:

P>>zzz 3333
P>>строка в БД:
P>> zzz ssss
P>>обновляю запись в базе данных:
P>>1) update ... set ip=3333 where мак=zzz and ip=ssss
P>>Дальше беру следующую строчку из файла,например она равна:

P>>zzz pppp

P>>делаю запрос:
P>>2) update ... set ip=pppp where мак=zzz and ip=ssss
P>>в результате один завпрос 2) перекрывает запрос 1), как избавится от этого
P>>


YKU>1) А почему это в java?

YKU>2) Чего вы хотите достчь?
YKU>3) (Очень общая очевидная рекомендация) хотите, что-бы запросы не — исспользуйте какой-то уникатьный идентификатор.

из файла читаю данные в которых указан список маков и соответствующих айпи,собираю это все в java.util.Vector, далее это веткор посылаю на сравнение
с базой даннх, по результатм сравнения мне нужно послать админу письмо типа: "у юзера Х поменялся айпишник с 1 на 2", точно так же с маками.
При реализации этого возникла проблема с запросами,которые дважды обновляют одну и ту же запись
Re: Сравнить данные
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 20.11.06 11:16
Оценка:
Здравствуйте, peter6636, Вы писали:

P>строка из файла:

P>zzz 3333
P>строка в БД:
P> zzz ssss
P>обновляю запись в базе данных:
P>1) update ... set ip=3333 where мак=zzz and ip=ssss
P>Дальше беру следующую строчку из файла,например она равна:

P>zzz pppp

P>делаю запрос:
P>2) update ... set ip=pppp where мак=zzz and ip=ssss
P>в результате один завпрос 2) перекрывает запрос 1), как избавится от этого
P>

1) проводить update по каждой строке в отдельности.

или

2) сначала сделать hash со списком маков, в нем собрать только последние ip.
после пробегания по всему списку, отдать все разом в базу.

не понял, в чем проблема.

во
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.