CREATE DATABASE IF NOT EXISTS Empresa; USE Empresa; CREATE TABLE IF NOT EXISTS funcionarios ( id INT PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(100), salario DECIMAL(10,2), departamento VARCHAR(50) ); CREATE TABLE IF NOT EXISTS log_transacoes ( id INT PRIMARY KEY AUTO_INCREMENT, funcionario_id INT, departamento_anterior VARCHAR(50), departamento_novo VARCHAR(50), data_alteracao TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO funcionarios (nome, salario, departamento) VALUES ('Ana', 2500.00, 'Vendas'), ('Carlos', 3000.00, 'TI'), ('Julia', 2800.00, 'RH'); SET GLOBAL event_scheduler = ON; CREATE EVENT IF NOT EXISTS aumento_salarial_anual ON SCHEDULE EVERY 1 YEAR STARTS CURRENT_TIMESTAMP DO UPDATE funcionarios SET salario = salario * 1.03; START TRANSACTION; SET @id_func = 1; SELECT @dep_antigo := departamento FROM funcionarios WHERE id = @id_func; UPDATE funcionarios SET departamento = 'Financeiro' WHERE id = @id_func; INSERT INTO log_transacoes (funcionario_id, departamento_anterior, departamento_novo) VALUES (@id_func, @dep_antigo, 'Financeiro'); COMMIT; CREATE USER IF NOT EXISTS 'usuario_junior'@'localhost' IDENTIFIED BY '1234'; CREATE USER IF NOT EXISTS 'usuario_senior'@'localhost' IDENTIFIED BY '1234'; REVOKE UPDATE ON Empresa.funcionarios FROM 'usuario_junior'@'localhost'; GRANT UPDATE (salario) ON Empresa.funcionarios TO 'usuario_senior'@'localhost'; FLUSH PRIVILEGES;