BEGIN and END statements group statements in procedures with more than one SQL statement.
Declarations can be made only within a BEGIN ... END block.
You can define a label for the block to clarify your code.
The labels must match exactly.
yourLableName: BEGIN
;
END yourLableName
mysql>
mysql> DELIMITER //
mysql> CREATE FUNCTION myProc (cost DECIMAL(10,2))
-> RETURNS DECIMAL(10,2)
->
-> SQL SECURITY DEFINER
->
-> tax: BEGIN
-> DECLARE order_tax DECIMAL(10,2);
-> SET order_tax = cost * .05;
-> RETURN order_tax;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql>
mysql> select myProc(123.45);
+----------------+
| myProc(123.45) |
+----------------+
| 6.17 |
+----------------+
1 row in set, 1 warning (0.00 sec)
mysql>
mysql> drop function myProc;
Query OK, 0 rows affected (0.00 sec)
mysql>