Files
email-tracker/external/duckdb/test/sql/upsert/upsert_conflict_target.test
2025-10-24 19:21:19 -05:00

41 lines
1.3 KiB
SQL

# name: test/sql/upsert/upsert_conflict_target.test
# group: [upsert]
statement ok
PRAGMA enable_verification;
statement ok
CREATE OR REPLACE TABLE tbl (a INT, b INT, c INT, PRIMARY KEY (a, b));
# a and b combined are not unique.
statement error
INSERT INTO tbl VALUES (1, 2, 3), (1, 2, 3);
----
Constraint Error: PRIMARY KEY or UNIQUE constraint violation: duplicate key
statement ok
INSERT INTO tbl VALUES (1, 2, 3), (1, 4, 5);
# Conflict target does not match any index on the table, only valid conflict target would be: (a,b)
statement error
INSERT INTO tbl VALUES (1,4,7), (1,8,4) ON CONFLICT (a) DO UPDATE SET c = 5;
----
Binder Error: The specified columns as conflict target are not referenced by a UNIQUE/PRIMARY KEY CONSTRAINT
# Conflict target does not match any index on the table, only valid conflict target would be: (a,b)
statement error
INSERT INTO tbl VALUES (1,4,7), (1,8,4) ON CONFLICT (b) DO UPDATE SET c = 5;
----
Binder Error: The specified columns as conflict target are not referenced by a UNIQUE/PRIMARY KEY CONSTRAINT
# Conflict target matches the index on the table, conflict is resolved by the ON CONFLICT clause
statement ok
INSERT INTO tbl VALUES (1,4,7), (1,8,4) ON CONFLICT (a,b) DO UPDATE SET c = 5;
query III
SELECT a, b, c FROM tbl ORDER BY ALL;
----
1 2 3
1 4 5
1 8 4