should be it
This commit is contained in:
90
external/duckdb/test/sql/constraints/unique/test_unique.test
vendored
Normal file
90
external/duckdb/test/sql/constraints/unique/test_unique.test
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
# name: test/sql/constraints/unique/test_unique.test
|
||||
# description: Single UNIQUE constraint
|
||||
# group: [unique]
|
||||
|
||||
statement ok
|
||||
SET default_null_order='nulls_first';
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER UNIQUE, j INTEGER)
|
||||
|
||||
# insert unique values
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (3, 4), (2, 5)
|
||||
|
||||
query II
|
||||
SELECT * FROM integers
|
||||
----
|
||||
3 4
|
||||
2 5
|
||||
|
||||
# insert a duplicate value as part of a chain of values, this should fail
|
||||
statement error
|
||||
INSERT INTO integers VALUES (6, 6), (3, 4);
|
||||
----
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
# but if we try to replace them like this it's going to fail
|
||||
statement error
|
||||
UPDATE integers SET i=77 WHERE i IS NULL
|
||||
----
|
||||
|
||||
query II
|
||||
SELECT * FROM integers ORDER BY i, j
|
||||
----
|
||||
NULL 6
|
||||
NULL 7
|
||||
2 5
|
||||
3 4
|
||||
|
||||
# we can replace them like this though
|
||||
statement ok
|
||||
UPDATE integers SET i=77 WHERE i IS NULL AND j=6
|
||||
|
||||
query II
|
||||
SELECT * FROM integers ORDER BY i, j
|
||||
----
|
||||
NULL 7
|
||||
2 5
|
||||
3 4
|
||||
77 6
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (NULL, 6), (NULL, 7)
|
||||
|
||||
statement error
|
||||
INSERT INTO integers VALUES (NULL, 6), (3, 7)
|
||||
----
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
Reference in New Issue
Block a user