那些年的记忆

习惯改变行为,行为决定命运。

使用变量做表名创建存储过程

使用变量做表名创建存储过程

设置分隔符

DELIMITER $$

创建存储过程

CREATE DEFINER=`root`@`%` PROCEDURE `create_table`(IN `$cell_ident` int)
BEGIN
SET @cell_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS CellBase.tab_',$cell_ident,' LIKE CellBase.meta;');
SET @serial_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS SerialBase.tab_',$cell_ident,' LIKE SerialBase.meta;');
SET @album_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS AlbumBase.tab_',$cell_ident,' LIKE AlbumBase.meta;');
PREPARE create_cell FROM @cell_sqlcmd;
PREPARE create_serial FROM @serial_sqlcmd;
PREPARE create_album FROM @album_sqlcmd;
EXECUTE create_cell;
EXECUTE create_serial;
EXECUTE create_album;
DEALLOCATE PREPARE create_cell;
DEALLOCATE PREPARE create_serial;
DEALLOCATE PREPARE create_album;
END$$


DELIMITER ;

调用存储过程

CALL create_table("6000");

修改存储过程

ALTER PROCEDURE create_table;

删除存储过程

DROP PROCEDURE create_table;

显示创建存储过程的语句

SHOW CREATE PROCEDURE create_table;

列出所有的存储过程

SHOW PROCEDURE STATUS

说明:

PREPARE 定义预查询

EXECUTE 执行预查询语句

DEALLOCATE PREPARE 删除预定义查询

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。