Skip to content

Commit a64611d

Browse files
committed
db triggers
1 parent 84c861b commit a64611d

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
-- MySQL Triggers Basic Syntax
2+
DELIMITER $$
3+
4+
CREATE TRIGGER trigger_name
5+
trigger_time trigger_event ON table_name FOR EACH ROW
6+
BEGIN
7+
END;
8+
$$
9+
10+
DELIMITER ;
11+
12+
-- show all triggers
13+
SHOW TRIGGERS;
14+
15+
-- drop trigger
16+
DROP TRIGGER IF EXISTS trigger_name;
17+
18+
19+
-- MySQL Trigger Example1
20+
DELIMITER $$
21+
22+
CREATE TRIGGER must_be_adult
23+
BEFORE INSERT ON users FOR EACH ROW
24+
BEGIN
25+
IF NEW.age < 18
26+
THEN
27+
SIGNAL SQLSTATE '45000'
28+
SET MESSAGE_TEXT = 'Must be an adult!';
29+
END IF;
30+
END;
31+
$$
32+
33+
DELIMITER ;
34+
35+
36+
-- MySQL Trigger Example2
37+
DELIMITER $$
38+
39+
CREATE TRIGGER example_cannot_follow_self
40+
BEFORE INSERT ON follows FOR EACH ROW
41+
BEGIN
42+
IF NEW.follower_id = NEW.followee_id
43+
THEN
44+
SIGNAL SQLSTATE '45000'
45+
SET MESSAGE_TEXT = 'Cannot follow yourself, silly';
46+
END IF;
47+
END;
48+
$$
49+
50+
DELIMITER ;
51+
52+
-- MySQL Trigger Example3
53+
DELIMITER $$
54+
55+
CREATE TRIGGER create_unfollow
56+
AFTER DELETE ON follows FOR EACH ROW
57+
BEGIN
58+
INSERT INTO unfollows
59+
SET follower_id = OLD.follower_id,
60+
followee_id = OLD.followee_id;
61+
END$$
62+
63+
DELIMITER ;
64+
65+

0 commit comments

Comments
 (0)