9.4의 새로 추가된 with check option입니다.
CREATE VIEW products_view2 AS
SELECT product_id,
product_name,
quantity,
(quantity - reserved) AS available
FROM products
WHERE quantity IS NOT NULL
WITH CHECK OPTION;
--with check 조건 없을 경우
king=# UPDATE products_view SET quantity = NULL WHERE product_id = 3;
UPDATE 1
--with check option 있을 경우
UPDATE products_view2 SET quantity = NULL WHERE product_id = 3;
ERROR: new row violates WITH CHECK OPTION for view "products_view2"
DETAIL: Failing row contains (3, Budget laptop, null, 0).
view를 생성 시 줬던 where절 조건에 어긋날 경우 view에 대한 update를 반영하지 않습니다.