Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Задача на первый взгляд простая. Есть две таблицы одинаковой структуры. Требуется сравнить данне в одной таблицы с другой и в случае если они (данные) не совпадают (отсутствует запись, новая, изменена) то заменить запись. немного сумбурно но принцип ясен. Проблема заключается в том что если сравнивать построчно - по полям то это занимает очень много времени - есть способ сравнить быстро? Более того - не важно какое поле изменилось - важен только факт что строки не равны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 09:13 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Владимор КоневТынц не совсем понял вышего ответа. что такое except я знаю. Но как он относиться к моему вопросу не уразумел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 09:46 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Более правильный тынц - RTFM Что-то типа такого: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 09:55 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
А кто вам сказал, что это ASA ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 11:11 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: > А кто вам сказал, что это ASA ? Заголовок топика "Q? ASA9 Как сравнить записи?" С добрым утром Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 11:14 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Пардон, пардон... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 11:43 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Александр ГoлдунБолее правильный тынц - RTFM Что-то типа такого: Код: plaintext 1. 2. 3. Если бы все было так просто (v_smirnov знает ;-) ). А теперь усложняем задачу: в table1 есть поле last_modified timestamp default timestamp и оно не должно меняться если записи в table1 и table2 идентичны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 22:24 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Анатолий ИвановА теперь усложняем задачу: в table1 есть поле last_modified timestamp default timestamp и оно не должно меняться если записи в table1 и table2 идентичны.А если не должна меняться, то использовать надо ON EXISTING SKIP. Все не просто, а намного проще :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 22:45 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
White Owl Анатолий ИвановА теперь усложняем задачу: в table1 есть поле last_modified timestamp default timestamp и оно не должно меняться если записи в table1 и table2 идентичны.А если не должна меняться, то использовать надо ON EXISTING SKIP. Все не просто, а намного проще :) Не должна только в идентичной записи, а так не обновится ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 23:40 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Анатолий Иванов White Owl Анатолий ИвановА теперь усложняем задачу: в table1 есть поле last_modified timestamp default timestamp и оно не должно меняться если записи в table1 и table2 идентичны.А если не должна меняться, то использовать надо ON EXISTING SKIP. Все не просто, а намного проще :) Не должна только в идентичной записи, а так не обновится ничего.А что такое "идентичная запись"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 18:23 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
White Owl Анатолий Иванов White OwlА если не должна меняться, то использовать надо ON EXISTING SKIP. Все не просто, а намного проще :) Не должна только в идентичной записи, а так не обновится ничего.А что такое "идентичная запись"? Совпадают все поля, кроме last_modified, поскольку такое поле есть только в table2 и служит оно только для отражения изменения записи (необходимо для timestamp-синхронизации Mobilink) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2006, 20:22 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 17:46 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
White Owl Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Опять не то. Есть допустим клиент 1, 2 и 3 в таблице 1 и клиент 1, 2 и 3 в таблице 2. В таблице 1 есть поле даты и времени изменения записи. В таблице 2 поля даты и времени изменения записи нет. Клиент 1 имеет одинаковое содержимое полей в таблице 1 и 2. Клиент 2 имеет разное содержимое полей в таблице 1 и 2. Клиент 3 отсутствует в таице 1 и присутствует в таблице 2. Задача: сделать так, чтобы в таблице 1 клиент 2 был по содержимому полей таким же как в таблице 2, при этом поле изменения записи для клиента 1 в таблице 1 не должно измениться. Клиент 3 должен появиться в таблице 1 с текущим временем и датой в поле измения записи. Информационных полей у клиента много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 21:05 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
... если полей много и лень их сравнивать, то можно изменить в table1 default timestamp на default current timestamp (т.е. при update'ах оно не будет автоматом меняться) и навесить триггер AFTER UPDATE, в котором обновлять timestamp-поле (триггер не сработает, если не было update'а хотя-бы одного поля таблицы). В такой конфигурации можно пользоваться предложенной выше конструкцией типа insert into table1(cl_id,f1,f2,f3) on existing update select cl_id,f1,f2,f3 from table2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2006, 12:14 |
|
||
|
Q? ASA9 Как сравнить записи?
|
|||
|---|---|---|---|
|
#18+
TIB... если полей много и лень их сравнивать, то можно изменить в table1 default timestamp на default current timestamp (т.е. при update'ах оно не будет автоматом меняться) и навесить триггер AFTER UPDATE, в котором обновлять timestamp-поле (триггер не сработает, если не было update'а хотя-бы одного поля таблицы). В такой конфигурации можно пользоваться предложенной выше конструкцией типа insert into table1(cl_id,f1,f2,f3) on existing update select cl_id,f1,f2,f3 from table2 М-да... А так хотелось без триггеров обойтись. Сейчас у меня все обновляемые таблицы, участвующие в обмене по Mobilink, не имеют триггеров вообще, все делается в процедуре и легко контролировать весь процесс и менять его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 12:58 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2012866]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 389ms |

| 0 / 0 |
