您的位置:首页 > 数据库 > MySQL

mysql手撸代码-- 过程、视图、函数、定时器sql

2016-11-16 17:54 441 查看
-- 生成存储过程
-- 创建前删除已存同名过程
DROP PROCEDURE IF EXISTS database_name.proc_procedure_name;
-- 创建过程 -- 括号内为传入参数,视情况添加
CREATE PROCEDURE database_name.table_name(IN start_Date VARCHAR(16),IN end_Date VARCHAR(16),IN init int(2)) 
BEGIN
-- 正文:
DELETE FROM database_name.table_name WHERE data_date >= start_Date AND data_date < end_Date;
INSERT INTO database_name.table_name (,,,,,,)
SELECT ,,,,,, FROM database_name.table_name;

END  ;
-- 执行存储过程 (括号内参数根据需求添加)
'每个过程在传给DBA时要加上下面的call执行语句'
CALL database_name.proc_procedure_name ('2016-07-09','2016-07-01',1)
CALL database_name.proc_procedure_name ('2016-07-09','2016-07-01',1,@result,@name,@comment )

===========================================================================

-- 生成视图
CREATE VIEW database_name.view_name(id,data_date) AS SELECT id,data_date FROM database_name.table_name;

===========================================================================

-- 创建函数
-- 类似存储过程,创建的函数名可作为公共函数使用
CREATE FUNCTION database_name.function_name(in_str MEDIUMTEXT,in_substr VARCHAR(100)) RETURNS VARCHAR(100)
BEGIN
-- 正文
SQL:
RETURN xxx;
END;

===========================================================================

-- 创建定时任务
CREATE EVENT IF NOT EXISTS database_name.event_name
ON SCHEDULE EVERY 1 DAY
ON COMPLETION PRESERVE
DO CALL proc_procedure_name()
-- 关闭定时任务
ALTER EVENT database_name.event_name ON 
COMPLETION PRESERVE DISABLE; 
-- 开启定时任务
ALTER EVENT database_name.event_name ON 

COMPLETION PRESERVE ENABLE; 

===========================================================================

-- 创建触发器

DROP TRIGGER IF EXISTS database_name.trigger_name;

CREATE TRIGGER database_name.trigger_name

AFTER INSERT ON database_name.table_name

FOR EACH ROW

BEGIN

   **********;

END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐