Skip to content

Instantly share code, notes, and snippets.

@eduardolfalcao
Last active July 24, 2024 20:13
Show Gist options
  • Save eduardolfalcao/c0abea7fcbe1090fe6d3b64a3faf89c6 to your computer and use it in GitHub Desktop.
Save eduardolfalcao/c0abea7fcbe1090fe6d3b64a3faf89c6 to your computer and use it in GitHub Desktop.
show database;
create database <db_name>;
# create schema <db_name>;
use <db_name>;
show tables;
# mariadb não suporta domínios
# Exemplo de domínio: sexo, assumindo somente os valores F ou M
CREATE TABLE IF NOT EXISTS USUARIO(
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50),
nome VARCHAR(50) NOT NULL,
sobrenome VARCHAR(50) NOT NULL,
dt_nasc DATE NOT NULL
);
# remove a tabela
drop table <table_name>;
# cria index em coluna
CREATE INDEX email_index ON USUARIO(email);
INSERT INTO USUARIO (email, nome, sobrenome, dt_nasc) VALUES ('eduardo@dca', 'Eduardo', 'Falcao', '1989-08-04');
INSERT INTO USUARIO (email, nome, sobrenome, dt_nasc) VALUES ('joao@dca', 'Joao', 'Silva', '1989-08-04');
INSERT INTO USUARIO (email, nome, sobrenome, dt_nasc) VALUES ('maria@dca', 'Maria', 'Lemos', '1989-08-04');
CREATE VIEW vw_usuario_email_nome AS SELECT email, nome FROM usuario;
CREATE TABLE log_alteracao (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT,
alteracao VARCHAR(255),
data_hora TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
DELIMITER //
CREATE TRIGGER trg_after_update_usuario
AFTER UPDATE ON usuario
FOR EACH ROW
BEGIN
INSERT INTO log_alteracao (usuario_id, alteracao)
VALUES (OLD.id, CONCAT('Atualização: Email de "', OLD.email, '" para "', NEW.email, '", Nome de "', OLD.nome, '" para "', NEW.nome, '"'));
END //
DELIMITER ;
UPDATE USUARIO SET email='eduardo@dcaufrn', nome='EDUARDO' WHERE id=1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment