Тестирование триггера
На этом шаге вы протестируете поведение триггера. Вы вставите данные в таблицу employees
, а затем обновите зарплату, чтобы увидеть, правильно ли триггер регистрирует изменения в таблице salary_changes
.
Сначала вставьте некоторые начальные данные в таблицу employees
:
INSERT INTO employees (name, salary) VALUES ('Alice', 50000.00);
INSERT INTO employees (name, salary) VALUES ('Bob', 60000.00);
Теперь обновите зарплату Алисы:
UPDATE employees SET salary = 55000.00 WHERE name = 'Alice';
Чтобы убедиться, что триггер сработал правильно, запросите таблицу salary_changes
:
SELECT * FROM salary_changes;
Вы должны увидеть строку в таблице salary_changes
с информацией об изменении зарплаты Алисы.
Далее, обновите зарплату Боба до того же значения, которое у него уже есть:
UPDATE employees SET salary = 60000.00 WHERE name = 'Bob';
Поскольку зарплата фактически не меняется, триггер не должен вставлять новую строку в таблицу salary_changes
. Давайте проверим это:
SELECT * FROM salary_changes;
Вы по-прежнему должны видеть только одну строку, связанную с изменением зарплаты Алисы.
Наконец, вставьте нового сотрудника:
INSERT INTO employees (name, salary) VALUES ('Charlie', 70000.00);
Вставка нового сотрудника не должна запускать триггер log_salary_change
, поскольку он настроен на срабатывание только при событиях UPDATE
. Давайте подтвердим это, снова проверив таблицу salary_changes
:
SELECT * FROM salary_changes;
Вы по-прежнему должны видеть только одну строку, связанную с изменением зарплаты Алисы.