|
|
|
| Как создать 1.000.000 записей программно?
Если можно в каждой записи записывает строку рандомом. | |
|
| |
|
|
|
| к примеру так, если добавить в одно поле значением от 1 до 1000
for k=1 to 1000000
currentDb.Execute "INSERT INTO [твоя таблица]( [твое поле] ) SELECT " & Int((1000 * Rnd) + 1)
next k
|
если полей несколько, то расширить см синтаксис INSERT INTO | |
|
| |
|
|
|
| Спасибо.
А если строки текстовые и чтобы не повторялись? | |
|
| |
|
|
|
| к слову....
на моей машине 10 000 записей таким образом создавались 26 сек
значит
1 000 000 записей - 46 минут | |
|
| |
|
|
|
| это с проверкой на уникальность? | |
|
| |
|
|
|
| не-е-е-е просто путо запустил функцию приведенную мышем | |
|
| |
|
|
|
|
for k=1 to 1000000
currentDb.Execute "INSERT INTO [твоя таблица]( [твое поле] ) SELECT " &
CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65))
next k
|
будет записано 6 буквенное слово из случайных букв английского алфавита. 26 в 6 степени дает 308915776 вариантов, по идее перекрывают 1000000, но возможны и частные совпадения. | |
|
| |
|
|
|
| у тебя что - работа кончилась? | |
|
| |
|
10 Кб. |
|
| По быструхе можно так:
Sub milenium()
Dim i As Byte
CurrentDb.Execute "delete from tab_test"
For i = 0 To 9
CurrentDb.Execute "INSERT INTO tab_test ( test ) VALUES ( " & i & " )"
Next i
CurrentDb.Execute "INSERT INTO tab_test ( test ) SELECT tab_test.test FROM tab_test, tab_test AS tab_test_1, tab_test AS tab_test_2, tab_test AS tab_test_3, tab_test AS tab_test_4, tab_test AS tab_test_5"
End Sub
|
запишет чуть более миллиона записей (причем достаточно быстро: на моем домашнем пне 3 (733 MHz) + 256 оперативки за 20 секкунд)
Вы что хотите чей-нить сервак за ..ца подвесить?
В прикрепленном примере с применением Rnd
но пишет уже чуть дольше - что-то около минуты (не засекал). Правда без уникальности (см. Запрос1), но это уже повозиться нужно.
Ну а цикл на VB, к сожалению, не самый быстрый самолет | |
|
| |