|
MS SQL. INSERT в таблицу, игнорируя ошибки дублирования ключей |
☑ |
0
SeiOkami
14.03.19
✎
15:29
|
Добрый день
Имеем копию базы. В ней есть большие таблицы (например, регистр накопления с 3 млрд строк или документ с 1.5 млрд).
Имеется дополнительно специальная копия, которая актуализируется раз в неделю.
Хочется скриптом периодически переливать новые данные из этой "основной" копии в собственную. Переливать только нужные таблицы. Чтобы не производить полное обновление базы.
Если переливать скриптом SQL данные с указанием периода, то могут произойти ситуации, когда в таблице документов уже есть такая ссылка. В такой ситуации скрипт INSERT просто упадёт в ошибку.
Есть ли возможность указать INSERT, который будет игнорировать ошибки при вставке. Т.е., если там уже есть строка с данными по этому ключу, то наплевать - идём дальше переносить данные.
Понятно, что таким образом будет не точная копия и где-то могут быть пробелы, но на это пойти готовы.
|
|
1
trad
14.03.19
✎
15:54
|
отфильтровать источник разве нельзя?
|
|
2
trad
14.03.19
✎
15:56
|
insert into t1
from t2
left join t1 on t1.key = t2.key
where t1.key is null
|
|
3
Вафель
14.03.19
✎
15:56
|
можно MERGE юзать
|
|
4
trad
14.03.19
✎
15:58
|
select * перед from забыл
|
|
5
Вафель
14.03.19
✎
15:59
|
(4) так то вначале нужно в t2 вставить
|
|
6
SeiOkami
14.03.19
✎
16:12
|
(2), это будет долговато, хотелось бы без соединений
|
|
7
trad
14.03.19
✎
16:16
|
(6) предлагаю протестить и замерить и не торопиться с выводами
|
|
8
SeiOkami
14.03.19
✎
16:17
|
(7). Смотрели. Таблицы в несколько терабайт, так что там всё больно
|
|
9
SeiOkami
14.03.19
✎
16:52
|
(3), о, спасибо большое. MERGE работает довольно шустро
|
|
10
Сияющий в темноте
14.03.19
✎
17:17
|
А insert or update?
|
|
11
SeiOkami
15.03.19
✎
13:31
|
(10), не знаю такого в MS SQL
|
|
12
Сияющий в темноте
15.03.19
✎
13:40
|
В общем-то,в mssql действительно из коробки такого нет
соответственно,предлагается писать процедуры
соответственно,в postgre немного по-другому
но тоже через одно место.
p.s.просто,я даже не подумал,что такую простую и полезную инструкцию не реализовали.
|
|
13
Ёпрст
гуру
15.03.19
✎
14:00
|
(12) в sqllite есть
|
|