17 Stored Procedures and Functions
* stored-procedure-privileges Stored Routines and the Grant Tables
* stored-procedure-syntax Stored Procedure Syntax
* stored-procedure-replication-faq Stored Procedures, Functions, Triggers, and Replication: Frequently Asked Questions
* stored-procedure-logging Binary Logging of Stored Routines and Triggers
Stored routines (procedures and functions) are supported in MySQL 5.0.
A stored procedure is a set of SQL statements that can be stored in the
server. Once this has been done, clients don't need to keep reissuing
the individual statements but can refer to the stored procedure instead.
Some situations where stored routines can be particularly useful:
* When multiple client applications are written in different
languages or work on different platforms, but need to perform the
same database operations.
* When security is paramount. Banks, for example, use stored
procedures and functions for all common operations. This provides
a consistent and secure environment, and routines can ensure that
each operation is properly logged. In such a setup, applications
and users would have no access to the database tables directly,
but can only execute specific stored routines.
Stored routines can provide improved performance because less
information needs to be sent between the server and the client. The
tradeoff is that this does increase the load on the database server
because more of the work is done on the server side and less is done on
the client (application) side. Consider this if many client machines
(such as Web servers) are serviced by only one or a few database
Stored routines also allow you to have libraries of functions in the
database server. This is a feature shared by modern application
languages that allow such design internally (for example, by using
classes). Using these client application language features is
beneficial for the programmer even outside the scope of database use.
MySQL follows the SQL:2003 syntax for stored routines, which is also
used by IBM's DB2.
The MySQL implementation of stored routines is still in progress. All
syntax described in this chapter is supported and any limitations and
extensions are documented where appropriate. Further discussion of
restrictions on use of stored routines is given in
Binary logging for stored routines takes place as described in
automatically generated byinfo2html