51 lines
867 B
SQL
51 lines
867 B
SQL
# name: test/sql/upsert/upsert_explicit_index.test
|
|
# description: Test index UPSERTs.
|
|
# group: [upsert]
|
|
|
|
statement ok
|
|
pragma enable_verification;
|
|
|
|
statement ok
|
|
CREATE TABLE tbl (i INT, j INT);
|
|
|
|
statement ok
|
|
INSERT INTO tbl VALUES (5, 3), (3, 2);
|
|
|
|
statement ok
|
|
CREATE UNIQUE INDEX my_index ON tbl(i);
|
|
|
|
statement ok
|
|
INSERT INTO tbl VALUES (5, 2) ON CONFLICT (i) DO UPDATE SET j = 10;
|
|
|
|
query II
|
|
SELECT i, j FROM tbl ORDER BY ALL DESC;
|
|
----
|
|
5 10
|
|
3 2
|
|
|
|
statement ok
|
|
DROP TABLE tbl CASCADE;
|
|
|
|
statement ok
|
|
CREATE TABLE tbl (i INT PRIMARY KEY, j INT);
|
|
|
|
statement ok
|
|
INSERT INTO tbl VALUES (42, 21), (21, 42);
|
|
|
|
statement ok
|
|
CREATE INDEX my_index ON tbl(j);
|
|
|
|
statement ok
|
|
INSERT INTO tbl VALUES (42, 20) ON CONFLICT DO UPDATE SET j = 30;
|
|
|
|
query III
|
|
SELECT i, j, rowid FROM tbl WHERE j = 30;
|
|
----
|
|
42 30 2
|
|
|
|
query III
|
|
SELECT i, j, rowid FROM tbl ORDER BY ALL;
|
|
----
|
|
21 42 1
|
|
42 30 2
|