1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<code>#開山函數 hello world</code>
<code>delimiter $$</code>
<code>create</code> <code>function</code> <code>test() </code><code>returns</code> <code>varchar</code><code>(20)</code>
<code>begin</code>
<code>return</code> <code>'hello world!'</code><code>;</code>
<code>end</code>
<code>$$</code>
<code>delimiter ;</code>
<code>#小測試</code>
<code>create</code> <code>function</code> <code>func1() </code><code>returns</code> <code>varchar</code><code>(20)</code>
<code>if </code><code>hour</code><code>(now())>=18 </code><code>then</code>
<code>return</code> <code>'late'</code><code>;</code>
<code>else</code>
<code>return</code> <code>'zao'</code><code>;</code>
<code>end</code> <code>if;</code>
<code>#全局變量</code>
<code>create</code> <code>function</code> <code>func2() </code><code>returns</code> <code>int</code>
<code>set</code> <code>@i = 1;</code>
<code>set</code> <code>@</code><code>sum</code> <code>= 0;</code>
<code>while @i<=10 do</code>
<code>set</code> <code>@</code><code>sum</code> <code>= @</code><code>sum</code> <code>+ @i;</code>
<code>set</code> <code>@i = @i + 1;</code>
<code>end</code> <code>while;</code>
<code>return</code> <code>@</code><code>sum</code><code>;</code>
<code>create</code> <code>function</code> <code>func3() </code><code>returns</code> <code>int</code>
<code>w:while @i<=10 do</code>
<code>if @i = 5 </code><code>then</code>
<code>leave w;</code>
<code>end</code> <code>while w;</code>
<code>create</code> <code>function</code> <code>func6() </code><code>returns</code> <code>int</code>
<code>set</code> <code>@i = 0;</code>
<code>w:while @i<10 do</code>
<code>iterate w;</code>
<code>#參數方式,局部變量</code>
<code>create</code> <code>function</code> <code>hello(</code><code>name</code> <code>varchar</code><code>(10)) </code><code>returns</code> <code>varchar</code><code>(20)</code>
<code>return</code> <code>concat(</code><code>'hello'</code><code>,</code><code>name</code><code>);</code>
<code>#定義局部變量,注意mysql的跳出是需要指定循環的。</code>
<code>create</code> <code>function</code> <code>func8() </code><code>returns</code> <code>int</code>
<code>declare</code> <code>i </code><code>int</code> <code>default</code> <code>0;</code>
<code>declare</code> <code>total </code><code>int</code> <code>default</code> <code>0;</code>
<code>w:while i<10 do</code>
<code>set</code> <code>i = i + 1;</code>
<code>if i = 5 </code><code>then</code>
<code>set</code> <code>total = total + i;</code>
<code>return</code> <code>total;</code>
<code>#以下寫一個存儲過程,生成一張任意條記錄的表。</code>
<code>#生成随機字元串</code>
<code>create</code> <code>function</code> <code>rand_string(n </code><code>int</code><code>) </code><code>returns</code> <code>varchar</code><code>(255)</code>
<code>declare</code> <code>chars_str </code><code>varchar</code><code>(100) </code><code>default</code> <code>'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'</code><code>;</code>
<code>declare</code> <code>return_str </code><code>varchar</code><code>(255) </code><code>default</code> <code>''</code><code>;</code>
<code>while i<n do</code>
<code>set</code> <code>return_str = concat(return_str,</code><code>substring</code><code>(chars_str,floor(1+rand()*52),1));</code>
<code>return</code> <code>return_str;</code>
<code>#生成随機數字</code>
<code>create</code> <code>function</code> <code>rand_num() </code><code>returns</code> <code>int</code><code>(5)</code>
<code>set</code> <code>i = floor(10+rand()*500);</code>
<code>return</code> <code>i;</code>
<code>#定義存儲過程</code>
<code>create</code> <code>procedure</code> <code>insert_emp(start </code><code>int</code><code>(10),max_num </code><code>int</code><code>(10))</code>
<code>set</code> <code>autocommit = 0;</code>
<code>repeat</code>
<code>set</code> <code>i = i+1;</code>
<code>insert</code> <code>into</code> <code>emp </code><code>values</code><code>((start+i),rand_string(6),</code><code>'SALESMAN'</code><code>,0001,2000,400,rand_num(),curdate());</code>
<code>until i = max_num</code>
<code>end</code> <code>repeat;</code>
本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1288070,如需轉載請自行聯系原作者