Я хочу проверить во время запроса, если ограничение соблюдается, если они не вместо отправки сообщения ERROR, просто верните FALSE. Как мне это сделать?Функция проверки ограничений SQL
Пример СТОЛ Я использую:
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, но если я не проверю, я получаю сообщение об ошибке, конечно, как мне t использовать проверку (IF ..) и не получать сообщение об ошибке, а вместо этого возвращать false, если вход неправильный?
PS: Я использую PostgreSQL, если это меняет что-либо
В Oracle вы можете создать определение пользователя исключений. Я уверен, что это должно быть возможным и в постгрессии. Когда ошибка выполнена, вы можете вернуть false – massie