Add
Do dowolnej instrukcji LOAD lub SELECT w skrypcie można dodać prefiks Add, aby określić, że powinna ona dodawać rekordy do innej tabeli. Określa on również, że ta instrukcja powinna być uruchamiana podczas częściowego ładowania. Prefiksu Add można też użyć w instrukcji Map.
Składnia:
Add[only][Concatenate[(tablename)]] (loadstatement | selectstatement)
Add[only]mapstatement
Podczas normalnego (nie częściowego) ładowania konstrukcja AddLOAD będzie działać jako normalna instrukcja LOAD. Rekordy zostaną wygenerowane i zapisane w tabeli.
Jeśli będzie używany prefiks Concatenate lub jeśli będzie istnieć tabela z tym samym zestawem pól, rekordy zostaną dołączone do odpowiedniej istniejącej tabeli. W przeciwnym razie konstrukcja AddLOAD utworzy nową tabelę.
Częściowe ładowanie da takie same rezultaty. Jedyna różnica polega na tym, że konstrukcja AddLOAD nigdy nie utworzy nowej tabeli. Zawsze istnieje odpowiednia tabela z poprzedniego wykonania skryptu, do której należy dołączyć rekordy.
Nie jest wykonywane sprawdzanie duplikatów, W związku z tym instrukcja z prefiksem Add zazwyczaj zawiera kwalifikator distinct lub klauzulę where eliminującą duplikaty.
W przypadku instrukcjiAdd Map...Using mapowanie jest przeprowadzane również podczas częściowego wykonywania skryptu.
Argumenty:
Argument | Opis |
---|---|
only | Opcjonalny kwalifikator wskazujący, że instrukcja ma być ignorowana podczas normalnego (nieczęściowego) przeładowania. |
Przykłady i wyniki:
Przykład | Wynik |
---|---|
Tab1: LOAD Name, Number FROM Persons.csv; Add LOAD Name, Number FROM newPersons.csv; |
Podczas normalnego przeładowania dane są ładowane z pliku Persons.csv i zapisywane w tabeli QlikView o nazwie Tab1. Dane z pliku NewPersons.csv są następnie konkatenowane z tą samą tabelą QlikView. Podczas częściowego przeładowania dane są ładowane z pliku NewPersons.csv i dołączane do tabeli QlikView o nazwie Tab1. Nie jest wykonywane sprawdzanie duplikatów. |
Tab1: SQL SELECT Name, Number FROM Persons.csv; Add LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Wykonywane jest sprawdzenie duplikatów polegające na wyszukaniu, czy wartość pola Name już istnieje we wcześniej załadowanych danych tabeli (patrz funkcja exists w funkcjach międzyrekordowych). Podczas normalnego przeładowania dane są ładowane z pliku Persons.csv i zapisywane w tabeli QlikView o nazwie Tab1. Dane z pliku NewPersons.csv są następnie konkatenowane z tą samą tabelą QlikView. Podczas częściowego przeładowania dane są ładowane z pliku NewPersons.csv, który jest dołączany do tabeli QlikView o nazwie Tab1. Wykonywane jest sprawdzenie duplikatów polegające na wyszukaniu, czy wartość pola Name już istnieje we wcześniej załadowanych danych tabeli. |
Tab1: LOAD Name, Number FROM Persons.csv; Add Only LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Podczas normalnego przeładowania dane są ładowane z pliku Persons.csv i zapisywane w tabeli QlikView o nazwie Tab1. Instrukcja ładująca plik NewPersons.csv jest ignorowana. Podczas częściowego przeładowania dane są ładowane z pliku NewPersons.csv, który jest dołączany do tabeli QlikView o nazwie Tab1. Wykonywane jest sprawdzenie duplikatów polegające na wyszukaniu, czy wartość pola Name już istnieje we wcześniej załadowanych danych tabeli. |