75 lines
1.3 KiB
SQL
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)
|