Код IT
← Каталог

Шпаргалка с типичными задачами по SQL — Ограничение количества зависимых записей

Фрагмент из «Шпаргалка с типичными задачами по SQL»: Ограничение количества зависимых записей.

SQL main.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();