ApolloXBr

script_trabalho_empresa

Nov 26th, 2025
466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.45 KB | None | 0 0
  1. CREATE DATABASE IF NOT EXISTS Empresa;
  2. USE Empresa;
  3.  
  4. CREATE TABLE IF NOT EXISTS funcionarios (
  5.     id INT PRIMARY KEY AUTO_INCREMENT,
  6.     nome VARCHAR(100),
  7.     salario DECIMAL(10,2),
  8.     departamento VARCHAR(50)
  9. );
  10.  
  11. CREATE TABLE IF NOT EXISTS log_transacoes (
  12.     id INT PRIMARY KEY AUTO_INCREMENT,
  13.     funcionario_id INT,
  14.     departamento_anterior VARCHAR(50),
  15.     departamento_novo VARCHAR(50),
  16.     data_alteracao TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  17. );
  18.  
  19. INSERT INTO funcionarios (nome, salario, departamento) VALUES
  20. ('Ana', 2500.00, 'Vendas'),
  21. ('Carlos', 3000.00, 'TI'),
  22. ('Julia', 2800.00, 'RH');
  23.  
  24. SET GLOBAL event_scheduler = ON;
  25.  
  26. CREATE EVENT IF NOT EXISTS aumento_salarial_anual
  27. ON SCHEDULE EVERY 1 YEAR
  28. STARTS CURRENT_TIMESTAMP
  29. DO
  30.     UPDATE funcionarios SET salario = salario * 1.03;
  31.  
  32. START TRANSACTION;
  33. SET @id_func = 1;
  34. SELECT @dep_antigo := departamento FROM funcionarios WHERE id = @id_func;
  35. UPDATE funcionarios SET departamento = 'Financeiro' WHERE id = @id_func;
  36. INSERT INTO log_transacoes (funcionario_id, departamento_anterior, departamento_novo)
  37. VALUES (@id_func, @dep_antigo, 'Financeiro');
  38. COMMIT;
  39.  
  40. CREATE USER IF NOT EXISTS 'usuario_junior'@'localhost' IDENTIFIED BY '1234';
  41. CREATE USER IF NOT EXISTS 'usuario_senior'@'localhost' IDENTIFIED BY '1234';
  42.  
  43. REVOKE UPDATE ON Empresa.funcionarios FROM 'usuario_junior'@'localhost';
  44. GRANT UPDATE (salario) ON Empresa.funcionarios TO 'usuario_senior'@'localhost';
  45. FLUSH PRIVILEGES;
  46.  
Advertisement
Add Comment
Please, Sign In to add comment