INSERT

Składnia: 

	
INSERT [ OR conflict-algorithm ] INTO [catalog-name.]table-name [(column-name[, column-name]*)] insert-content

insert-content:
VALUES (value[, value]*) | select-statement          
	

Instrukcja INSERT modyfikuje podaną tabelę, tworząc nowe wiersze z podanymi wartościami pól lub wstawiając wiersze uzyskane za pomocą instrukcji SELECT.

W przypadku wariantu insert-content ze słowem kluczowym VALUES, utworzony zostanie jeden nowy wiersz w tabeli. Jeżeli nie podana zostanie lista kolumn, to liczba przekazanych wartości musi być taka sama jak liczba kolumn w tabeli.

Jeżeli podana zostanie lista nazw kolumn, to liczba przekazanych wartości musi być taka sama, jak liczba podanych kolumn. W kolumny z tabeli, które nie są uwzględnione w liście kolumn wpisane zostaną wartości domyślne lub Null.

W drugim wariancie wiersze do wstawienia są generowane za pomocą instrukcji SELECT. Jeżeli nie podana zostanie lista kolumn, to liczba kolumn w wyniku tej instrukcji musi się zgadzać z liczbą kolumn w tabeli. Jeżeli podana zostanie lista nazw kolumn, to liczba kolumn w wyniku instrukcji SELECT musi być taka sama, jak liczba kolumn podanych w liście. W kolumny z tabeli, które nie są uwzględnione w liście kolumn wpisane zostaną wartości domyślne lub Null.

Dla każdego wiersza z wyniku instrukcji SELECT tworzony jest nowy wiersz w zmienianej tabeli. Możliwe jest stosowanie zarówno prostych jak i złożonych instrukcji SELECT.

Opcjonalne klauzule rozwiązywania konfliktów conflict-algorithm pozwalają na określenie alternatywnego algorytmu rozwiązywania konfliktów, stosowanego w trakcie wykonywania instrukcji. Więcej informacji można znaleźć w podrozdziale ON CONFLICT.

Notatka

Zamiast INSERT OR REPLACE ... można stosować też instrukcję REPLACE INTO .