MENU
MySQL Prepared Statements
PREPARE ps_name FROM preparable_stmt |
EXECUTE ps_name [USING @var1 [,@var2]...] |
{DEALLOCATE | DROP} PREPARE ps_name |
A prepared statement is deallocated automatically at the end of a session. A prepared statement is not shared by other sessions. |
Prepared statements cannot be nested or contain multi-statements. |
If a prepared statement is constructed in a stored routine, it won’t be cleared when the stored routine exits. As such, a prepared statement cannot refer to stored routines’ parameters or local variables. |
? is used as parameter markers in preparable_stmt. |
Preparable statements |
ALTER TABLE ALTER USER ANALYZE TABLE CACHE INDEX CALL CHANGE MASTER CHECKSUM {TABLE | TABLES} COMMIT {CREATE | DROP} INDEX {CREATE | RENAME | DROP} DATABASE {CREATE | DROP} TABLE {CREATE | RENAME | DROP} USER {CREATE | DROP} VIEW DELETE DO FLUSH {TABLE | TABLES | TABLES WITH READ LOCK | HOSTS | PRIVILEGES | LOGS | STATUS | MASTER | SLAVE | DES_KEY_FILE | USER_RESOURCES} GRANT INSERT INSTALL PLUGIN KILL LOAD INDEX INTO CACHE OPTIMIZE TABLE RENAME TABLE REPAIR TABLE REPLACE RESET {MASTER | SLAVE | QUERY CACHE} REVOKE SELECT SET SHOW {WARNINGS | ERRORS} SHOW BINLOG EVENTS SHOW CREATE {PROCEDURE | FUNCTION | EVENT | TABLE | VIEW} SHOW {MASTER | BINARY} LOGS SHOW {MASTER | SLAVE} STATUS SLAVE {START | STOP} TRUNCATE TABLE UNINSTALL PLUGIN UPDATE |
PREPARE ps FROM 'SELECT ? + ?;'; SET @a=1, @b=2; EXECUTE ps USING @a, @b; DEALLOCATE PREPARE ps; |
3 |