Skip to content

Instantly share code, notes, and snippets.

@ksugawara61
Last active August 9, 2019 02:37
Show Gist options
  • Save ksugawara61/2dacb40b6ce65219512abfcb91819303 to your computer and use it in GitHub Desktop.
Save ksugawara61/2dacb40b6ce65219512abfcb91819303 to your computer and use it in GitHub Desktop.
MySQL Trigger sample snippet
/* for insert */
insert into articles (title) values ('insert_test');
select * from articles;
select * from trigger_sample;
/* for udpate */
update articles set title = 'update_test' where id = 1;
select * from articles;
select * from trigger_sample;
/* for delete */
delete from articles where id = 1;
select * from articles;
select * from trigger_sample;
drop database if exists trigger_sample_db;
create database trigger_sample_db;
use trigger_sample_db;
create table articles (
id int auto_increment primary key,
title varchar(255)
);
create table trigger_sample (
id int auto_increment primary key,
query varchar(10),
article_title varchar(255),
created_at datetime
);
/* confirm create tables */
show columns from articles;
show columns from trigger_sample;
/* for insert */
create \
trigger insert_trigger \
after insert \
on articles for each row \
insert into trigger_sample (query, article_title, created_at) \
values ('Insert', new.title, now());
/* for update */
create \
trigger update_trigger \
after update \
on articles for each row \
insert into trigger_sample (query, article_title, created_at) \
values ('Update', new.title, now());
/* for delete */
create \
trigger delete_trigger \
after delete \
on articles for each row \
insert into trigger_sample (query, article_title, created_at) \
values ('Delete', old.title, now());
show triggers\G
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment