【发布时间】:2016-03-22 12:00:54
【问题描述】:
我想在请求期间检查约束是否得到遵守,如果没有,而不是发送错误消息,只需返回 FALSE。我该怎么做?
我正在使用的 TABLE 示例:
CREATE TABLE tree (
name VARCHAR(64) UNIQUE PRIMARY KEY,
leaf INT CHECK (leaf > 0)
);
我会使用的函数示例:
CREATE FUNCTION add_tree(name, nb_leaf) RETURNS BOOLEAN;
CREATE FUNCTION remove_leaf(tree_name, leaf_to_remove) RETURNS BOOLEAN;
在我的函数中,检查名称会过于重复
IF EXISTS (SELECT name FROM tree WHERE name=tree_name) THEN...
因为我已经有一个 UNIQUE 约束,但是如果我不检查我当然会收到错误消息,我如何不使用检查 (IF..) 并且不会收到错误消息而是返回 false 而不是输入错误?
PS:如果有任何改变,我正在使用 postgresql
【问题讨论】:
-
在 Oracle 中,您可以创建用户定义的异常。我很确定这在 postgress 中也必须是可能的。执行错误时可以返回 false
标签: sql postgresql constraints unique-constraint check-constraints