Files
email-tracker/external/duckdb/test/sql/constraints/check/test_check.test
2025-10-24 19:21:19 -05:00

75 lines
1.3 KiB
SQL

# name: test/sql/constraints/check/test_check.test
# description: CHECK constraint
# group: [check]
statement ok
CREATE TABLE integers(i INTEGER CHECK(i < 5))
statement ok
INSERT INTO integers VALUES (3)
statement error
INSERT INTO integers VALUES (7)
----
statement ok
INSERT INTO integers VALUES (NULL)
query I
SELECT * FROM integers
----
3
NULL
statement ok
DROP TABLE integers;
statement ok
CREATE TABLE integers(i INTEGER CHECK(i + j < 10), j INTEGER)
statement ok
INSERT INTO integers VALUES (3, 3)
statement error
INSERT INTO integers VALUES (5, 5)
----
statement error
INSERT INTO integers VALUES (3, 3), (5, 5)
----
query II
SELECT * FROM integers
----
3 3
statement error
CREATE TABLE indirect_subq(
i INTEGER,
CHECK (i > (2 * (SELECT(1))))
);
----
statement error
CREATE TABLE integers2(i INTEGER CHECK(i > (SELECT 42)), j INTEGER)
----
statement error
CREATE TABLE integers2(i INTEGER CHECK(i > SUM(j)), j INTEGER)
----
statement error
CREATE TABLE integers3(i INTEGER CHECK(k < 10), j INTEGER)
----
statement error
CREATE TABLE integers3(i INTEGER CHECK(integers3.k < 10), j INTEGER)
----
statement error
CREATE TABLE integers3(i INTEGER CHECK(integers2.i < 10), j INTEGER)
----
statement ok
CREATE TABLE integers4(i INTEGER CHECK(integers4.i < 10), j INTEGER)