|
|
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Пешу на Builder, ADO, Access 2000 Надо вставить в таблицу записи из другой таблицы. При совпадении индексных полей аццесс естественно выдаёт ошибку. Таким образом если в двух таблице есть хоть одна запись с одинаковым индексным полем, то при массовом копировании записей с помощью INSERT INTO .. SELECT .., ниодна запись не будет скопирована. Было б круто если б аццесс всётаки копировал записи которых нет, а которые уже есть не перезаписовал.(не выдвал б ошибку мол уникальность индексов и т.д.) Главное дело, когда запрос запускаеш на самом аццессе, то аццесс говорит мол будет добавлено столько записей, не будет добавлено столько то записей потомучто индексы и всё работает пучком. Подскажите плизззз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 11:02:09 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
А что мешает добавлять только те записи, которых нет? insert ... where ... not in ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 11:17:25 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
я уже сделал запрос insert ... where ... not in ... , но он слишком медленно работает. Вот он: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 11:55:33 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Зачем тебе милчеловек JOIN здесь??? Так, вроде, проще. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 12:03:57 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
BelyЗачем тебе милчеловек JOIN здесь??? Так, вроде, проще. Код: plaintext 1. 2. 3. хм... щас попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:08:25 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
автор Главное дело, когда запрос запускаеш на самом аццессе, то аццесс говорит мол будет добавлено столько записей, не будет добавлено столько то записей потомучто индексы и всё работает пучком. Рецепт пучка: /topic/110599&hl=BULK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:18:38 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
BelyЗачем тебе милчеловек JOIN здесь??? Так, вроде, проще. Код: plaintext 1. 2. 3. Может так и проще, но JOIN-ом гораздо быстрее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:40:07 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Shuhard автор Главное дело, когда запрос запускаеш на самом аццессе, то аццесс говорит мол будет добавлено столько записей, не будет добавлено столько то записей потомучто индексы и всё работает пучком. Рецепт пучка: /topic/110599&hl=BULK ОГРОМНОЕ СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:46:08 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
STINGOМожет так и проще, но JOIN-ом гораздо быстрее! Ты бы просто посмотрел как у тебя SELECT работает. Здается, что дело в нем и скорость из за него плохая. JOIN может дать очень много лишних данных, и на их хранение будет тратиться много памяти. Отсюда будут тормоза А сам SELECT можно по другому модифицировать, но скорость работы будет зависеть от конкретных данных. Пример: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:48:23 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Ежели пойдет - выложи пример кода из Builder-а интересно глянуть на синтаксис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 13:49:21 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Bely: в моём случае JOIN оказался быстрее чем NOT IN. Проверял и засекал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:06:13 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
ShuhardЕжели пойдет - выложи пример кода из Builder-а интересно глянуть на синтаксис. Не совсем понял какие исходники. В билдере есть компонент TADOConnection у него есть параметр ConnectionString вот его значение: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:09:29 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Так правильнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:11:14 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
авторProvider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=urga.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=STINGO;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=1;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False Ещё правильнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:12:08 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
STINGOBely: в моём случае JOIN оказался быстрее чем NOT IN. Проверял и засекал. BTW: если не помогает один запрос, то иногда помогают 2 запроса. А именно: 1) Код: plaintext 1. 3) Составляем запрос на добавление, используя фиксированный список: Код: plaintext 1. 2. PS: если список с совпадениями получается слишком длинный - добавить условие отбора в запрос (1). Оптимизация запросов - дело творческое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:21:28 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
Всё равно JOIN-ны круче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:28:51 |
|
||
|
Добавление массы записей, игнорируя уже существующие
|
|||
|---|---|---|---|
|
#18+
STINGOВсё равно JOIN-ны круче Что у тебя за данные такие, что JOIN-ы работают быстрее? :-\ Счастливец просто... Первый раз такого вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:34:07 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32646211&tid=1672530]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 281ms |

| 0 / 0 |
