質問編集履歴

1

ソースを入れてみました。

2015/12/21 00:03

投稿

Pun_hiro
Pun_hiro

スコア32

test CHANGED
@@ -1 +1 @@
1
- MYSQLのトリガーについて
1
+ MYSQLのトリガーについて 【なんどもすみません。】
test CHANGED
@@ -1,17 +1,103 @@
1
- MYSQLのプロシージャで
1
+ MYSQLのトリガープロシージャで
2
2
 
3
- 以下のイメージで条件分岐たいのですが、
3
+ 読み飛ばし条件を入れたいのですが、
4
-
5
- どう記述したらいいのでしょうか。
6
4
 
7
5
 
8
6
 
9
- IF NEW.TESTID NOTLIKE '%A01%'
7
+ set NAMES utf8;
10
-
11
- EXIT //トリガープロシージャを抜ける
12
-
13
- ENDIF
14
8
 
15
9
 
16
10
 
11
+
12
+
13
+ DELIMITER $$
14
+
15
+
16
+
17
+ CREATE TRIGGER UPD_AA010 AFTER UPDATE ON AA010_NYUKO FOR EACH ROW
18
+
19
+ BEGIN
20
+
21
+ DECLARE W_UPD_KEY varchar(1000);
22
+
23
+ DECLARE W_UPD_DATA mediumtext;
24
+
25
+
26
+
27
+ SET W_UPD_KEY = CONCAT('伝票番号=', NEW.AA010_DENPYO_NO);
28
+
29
+
30
+
31
+ SET W_UPD_DATA = '';
32
+
33
+
34
+
35
+ //イメージ
36
+
37
+ IF NEW.AA010_UPD_APP_ID NOTLIKE '%K01%'
38
+
39
+ EXIT
40
+
41
+ ENDIF
42
+
43
+ //この行にNEW.AA010_UPD_APP_ID が '%A01%' 出ない場合はトリガーの終了をしたいのです。
44
+
45
+
46
+
47
+
48
+
49
+ IF OLD.AA010_NYUKO_DATE <> NEW.AA010_NYUKO_DATE THEN
50
+
51
+ SET W_UPD_DATA = CONCAT(W_UPD_DATA, '入庫日(前)=', DATE_FORMAT(OLD.AA010_NYUKO_DATE, '%Y/%m/%d'), ' ');
52
+
53
+ SET W_UPD_DATA = CONCAT(W_UPD_DATA, '入庫日(後)=', DATE_FORMAT(NEW.AA010_NYUKO_DATE, '%Y/%m/%d'), ',');
54
+
55
+ END IF;
56
+
57
+
58
+
59
+
60
+
61
+ IF W_UPD_DATA <> '' THEN
62
+
63
+ INSERT INTO AA999_DB_RIREKI (
64
+
65
+ AA999_EXEC_TIME,
66
+
67
+ AA999_EXEC_USER_ID,
68
+
17
- アドバイスよろしくお願いいたします。
69
+ AA999_EXEC_APP_ID,
70
+
71
+ AA999_TBL_NM,
72
+
73
+ AA999_UPD_KEY,
74
+
75
+ AA999_UPD_DATA
76
+
77
+ ) VALUES (
78
+
79
+ NEW.AA999_UPD_TIME,
80
+
81
+ NEW.AA999_UPD_USER_ID,
82
+
83
+ NEW.AA999_UPD_APP_ID,
84
+
85
+ '入庫テーブル',
86
+
87
+ W_UPD_KEY,
88
+
89
+ W_UPD_DATA
90
+
91
+ );
92
+
93
+ END IF;
94
+
95
+
96
+
97
+ END;
98
+
99
+ $$
100
+
101
+
102
+
103
+ DELIMITER ;