|
как игнорировать повторную вставку строк
|
|||
---|---|---|---|
#18+
проблема в следующем: 1. база на 140 млн записей 2. записи должны быть уникальными, поэтому использую индекс unique 3. загонять данные в нее надо из текстовых файлов 4. единственное, что я нашла для этой цели - команда COPY 5. она вылетает при первой же попытке вставить не уникальную строку например, в MSSQL есть специальная опция для таких случаев ignore duplicated keys Подскажите, пожалуйста, есть ли что-нибудь аналогичное для Postgre SQL или как обойти данную проблему. Заранее благодарна ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2004, 17:50 |
|
как игнорировать повторную вставку строк
|
|||
---|---|---|---|
#18+
Ничего подобного здесь нет. Единственное, могу утешить - в 7.5 вроде как обещают сделать частичный ROLLBACK - можно будет откатываться до явно указанного чекпоинта! while (1) { CHECKPOINT A1 prepare_next_insert_data(); INSERT INTO big_table VALUES (...) if (error == non_unique) { ROLLBACK A1; } } Хотя не знаю точно, как это будет реализовано, может в этой ситуации оно не поможет ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 07:18 |
|
как игнорировать повторную вставку строк
|
|||
---|---|---|---|
#18+
2 PrettyFly_M Ну я бы честно говоря не стал бы лить командой COPY данные напрямую в рабочую таблицу, а для начала во временную (или промежуточную) со всеми соответствующими проверками и чисткой. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 15:28 |
|
|
start [/forum/topic.php?fid=53&tid=2007863]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 426ms |
0 / 0 |