Написание триггера - MySQL

Узнай цену своей работы

Формулировка задачи:

Ребята, создал БД - Автосервис. Сделаю скриншоты своих таблиц. На основе них, посмотрите пожалуйста на создание триггера, а то он у меня не выполняется. Не вижу, в чём может быть ошибка. Суть триггера: Сделать ограничение, чтобы мастер в автосервисе в день не мог принимать более 5 клиентов".
CREATE TRIGGER max_clients_count
    ON `avtobase`.`clients` AFTER INSERT
    AS BEGIN
        DECLARE @FIO varchar (50)
        DECLARE @date1 date
        DECLARE @master_id int
        SET @FIO = (SELECT FIO FROM inserted)
        SET @date1 = (SELECT Dates_clients FROM inserted)
        SET @master_id = (SELECT ID_mastera FROM inserted)
        IF (SELECT count(ID) FROM avtobase.clients WHERE FIO = @FIO AND Dates_clients = @date1 AND ID_mastera = @master_id) > 5
            BEGIN
                ROLLBACK TRAN
                PRINT 'NO!'
            END
    END

Решение задачи: «Написание триггера»

textual
Листинг программы
CREATE TRIGGER max_clients_count
    BEFORE INSERT ON `avtobase`.`clients`
    BEGIN
        DECLARE @FIO varchar (50)
        DECLARE @date1 date
        DECLARE @master_id int
        SET @FIO = (SELECT FIO FROM inserted)
        SET @date1 = (SELECT Dates_clients FROM inserted)
        SET @master_id = (SELECT ID_mastera FROM inserted)
        IF (SELECT count(ID) FROM avtobase.clients WHERE FIO = @FIO AND Dates_clients = @date1 AND ID_mastera = @master_id) > 5
            BEGIN
                ROLLBACK TRAN
                PRINT 'NO!'
            END
    END

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы