← Каталог
Шпаргалка с типичными задачами по SQL — Ограничение количества зависимых записей
Фрагмент из «Шпаргалка с типичными задачами по SQL»: Ограничение количества зависимых записей.
-- Использование триггера для проверки лимита
CREATE OR REPLACE FUNCTION check_item_limit()
RETURNS TRIGGER AS $$
DECLARE
v_count integer;
BEGIN
SELECT COUNT(*) INTO v_count
FROM order_items
WHERE order_id = NEW.order_id;
IF v_count >= 100 THEN
RAISE EXCEPTION 'Limit exceeded for order items';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_item_limit
BEFORE INSERT ON order_items
FOR EACH ROW EXECUTE FUNCTION check_item_limit(); -- Использование триггера для проверки лимита
CREATE OR REPLACE FUNCTION check_item_limit()
RETURNS TRIGGER AS $$
DECLARE
v_count integer;
BEGIN
SELECT COUNT(*) INTO v_count
FROM order_items
WHERE order_id = NEW.order_id;
IF v_count >= 100 THEN
RAISE EXCEPTION 'Limit exceeded for order items';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_item_limit
BEFORE INSERT ON order_items
FOR EACH ROW EXECUTE FUNCTION check_item_limit();