我有一个非常简单的片段,它已经困扰了我几个小时了:
CREATE TABLE driving_school_questions(
question VARCHAR2(200),
picture VARCHAR2(2),
CONSTRAINT q_p_chk CHECK ((question LIKE '%see picture%' AND picture IS NOT NULL)
AND
(question LIKE '% %' OR picture IS NULL))
);
我在这里试图实现的是创建一个约束,如果问题字段包含“看图片”,那么图片不能为 NULL,否则对于每个不包含“看图片”的问题,它可以为 NULL。我曾在 CHECK 子句中尝试过其他表达式,但无济于事。
这些插件工作正常:
INSERT INTO driving_school_questions (question, picture)
VALUES ('blahblah see picture', '23'); --NOT NULL so ok for now
INSERT INTO driving_school_questions (question, picture)
VALUES ('blah blah see picture ', NULL); --It's ok to be NULL(constraint violated)
这不起作用:
INSERT INTO driving_school_questions (question, picture)
VALUES ('blah blah', NULL);--it should work but constraint violation