Istnieje subtelna różnica. Wstawione rekordy za pomocą INSERT pozostaną, jeśli wszystkie nie-kluczowe pola zostaną ustawione na wartość null. Rekordy wstawione za pomocą UPDATE znikają, jeśli dla wszystkich pól innych niż kluczowe zostaną ustawione wartości null.
Spróbuj tego:
CREATE TABLE T (
pk int,
f1 int,
PRIMARY KEY (pk)
);
INSERT INTO T (pk, f1) VALUES (1, 1);
UPDATE T SET f1=2 where pk=2;
SELECT * FROM T;
Powroty:
pk | f1
----+----
1 | 1
2 | 2
Teraz aktualizować każdy wiersz ustawienia f1 null.
UPDATE T SET f1 = null WHERE pk = 1;
UPDATE T SET f1 = null WHERE pk = 2;
SELECT * FROM T;
Należy zauważyć, że rząd 1 pozostaje, a wiersz 2 jest usunięty.
pk | f1
----+------
1 | null
Jeśli spojrzysz na te, używając Cassandra-cli, zobaczysz inny sposób dodawania wierszy.
Chciałbym się dowiedzieć, czy jest to zgodne z projektem, czy z błędem, i zobacz to zachowanie udokumentowane.
Czy istnieje różnica w wydajności między 'INSERT' vs' UPDATE'? – Pankaj
@Pankaj Chcę też to wiedzieć. Czy znasz jakąś wiedzę na ten temat? – niaomingjian
Niestety @niaomingjian Nie znalazłem więcej informacji na ten temat. – Pankaj