Rezzie Rezzie - 2 months ago 15
SQL Question

Conditional SQLite check constraint?

I have a table defined by the following SQL:

CREATE TABLE test (
id integer PRIMARY KEY NOT NULL UNIQUE,
status text NOT NULL,
enddate date,
/* Checks */
CHECK (status IN ("Current", "Complete"))
);


I'd like to add a constraint that requires
enddate
to be non-null if the
status
is "Complete".

Is this possible? I am using SQLite v3.6.16.

Answer

How about:

CHECK (status = "Current" or (status = "Complete" and enddate is not null))
Comments