CCCPaste

script_trabalho_empresa

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;