
对于蓝色1的要求,将定期删除15天前的manager_info_“ date”表.
这个要求也可以从操作系统方面实现,只要您使用rm编写脚本,就非常方便.
但是,如果的表文件不使用独立的表空间,或者在没有操作系统文件权限的情况下,dba需要使用存储过程来实现的目的.
应注意编写过程: 只需使用set或clarify语句定义变量,然后直接使用SQL表名是不可接受的mysql的存储过程怎么调用,mysql将把变量名视为表名.
在其他关系中也是如此. mysql的解决方案是将整个SQL语句用作变量,将变量作为表名插入其中,然后使用sp_executesql调用该语句.

在mysql5.0之前这是不可能的. 5.0之后引入了一条新语句,该语句可以实现类似于sp_executesql的功能(仅对过程有效,该功能不支持动态查询). 语法如下:
PREPARE statement_name FROM preparable_SQL_statement; / *定义* /
EXECUTE statement_name [使用@var_name [,@var_name] ...]; / *执行准备好的语句* /
{取消分配| DROP} PREPARE statement_name / *删除定义* /;
附加的存储过程代码:

如果存在“ pro_deltable”,则执行删除程序;
DELIMITER ;;
创建过程pro_deltable()
开始
DECLARE X VARCHAR(50);

SET @X = concat('drop table test','. 'mysql的存储过程怎么调用,'`','manager_info _',DATE_FORMAT(date_add(curdate(),interval -2 day),'%Y-%m-%d '),'`',';');
插入test.v1值(@X);
@X的预备DS;
执行DS;
END

DELIMITER ;;
在上面的示例中,@ X作为整个SQL传递到DS,并调用了DS.
最后,删除测试库中的manager_info_2014-02-09表
mysql>从v1选择*;
+ ---------------------------------------------- -+
| id |
+ ---------------------------------------------- -+
|删除表测试. `manager_info_2014-02-10`; |
+ ---------------------------------------------- -+
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-232033-1.html
一会退市