mysql 语句记录(定时器,存储过程,索引,触发器,权限设置)
2016-09-23 16:42
399 查看
一.定时器+存储过程
1. 是否存在存储过程
/*查看存储过程*/ show PROCEDURE STATUS; /*删除存储过程*/ DROP PROCEDURE pro_updateGameState; /*查看存储过程创建代码*/ show CREATE PROCEDURE pro_updateGameState;
2. 创建存储过程
CREATE PROCEDURE pro_updateGameState() BEGIN UPDATE t_game SET state=1 where state=0 AND DATE_ADD(start_time,INTERVAL (SELECT c_value from t_config where c_key='end_time') SECOND)>NOW(); END;
3. 调用存储过程
CALL pro_updateGameState();
4. 查看event是否开启
show variables like '%sche%';
5. 开启event_scheduler
set global event_scheduler =1;
6. 创建定时器操作,每隔30s运行一次
/*是否一定存在定时器*/ show EVENTS; /*删除定时器*/ drop EVENT event_updateGameState ; /*创建定时器*/ create event if not exists event_updateGameState on schedule every 30 second on completion preserve do call pro_updateGameState();
7. 关闭定时器任务 disable
alter event event_updateGameState ON COMPLETION PRESERVE DISABLE;
8. 开始定时器任务 enable
alter event event_updateGameState ON COMPLETION PRESERVE ENABLE;
二.带输入输出的存储过程
1.删除存储过程
drop procedure pro_finIndex;
2.创建存储过程
CREATE PROCEDURE pro_finIndex (IN userId INT,OUT count INT) BEGIN /* 定义一个整形变量 */ DECLARE v1 INT; /* 将输入参数的值赋给变量 */ set v1=userId; SELECT count(*) INTO count FROM t_message WHERE user_id = v1 AND time > ( SELECT message_time FROM t_user_time WHERE user_id = v1); END
3.插入参数
CALL pro_finIndex(258,@count);
4.查询
< 4000 span class="hljs-keyword">select @count;
三.触发器
1. 删除触发器
DROP TRIGGER IF EXISTS t_afterinsert_on_t_user;
2. 创建触发器
create trigger t_afterinsert_on_t_user AFTER INSERT on t_user for each row BEGIN INSERT into t_user_time (user_id) VALUES (new.user_id); INSERT INTO t_wallet(user_id) VALUES(new.user_id); END
3.查询所有触发器
SELECT * FROM information_schema.`TRIGGERS`;
四.索引
1.创建普通索引
create index message_uid_type on t_message (type) ; EXPLAIN select * from t_message where user_id=315; select * from t_message where user_id=315; EXPLAIN select * from t_message where type=3; select * from t_message where type=3; select * from t_message where type=3 AND user_id=315;
2.删除索引
drop index message_uid_type on t_message ;
3.查询索引
SHOW INDEX FROM table_name;
五.数据库权限
/*创建一个用户*/ CREATE USER 'faceOnly'@'%' identified BY 'Sumudada9508.'; /*查询数据库所有管理员*/ select host,user,password from user ; /*查询用户face 的权限*/ show grants for face; show grants; /* 创建一个超级用户*/ GRANT ALL PRIVILEGES ON *.* TO xialin@'%' IDENTIFIED BY '757528.muxia' WITH GRANT OPTION; /*移除face 的一切权限*/ revoke all on *.* from face; /*赋予 某个数据库的权限*/ grant all on facebook.* to face@'%'; /**刷新权限*/ FLUSH PRIVILEGES; /**查看进程*/ show processlist
六.查询不相同的数据模板
SELECT * FROM user AS A WHERE (invite_code IN (SELECT invite_code FROM user AS B WHERE A.user_id
相关文章推荐
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- PHP数据库 mysql(三)事务、存储函数,存储过程,触发器、权限设置
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- mysql语句:索引,游标,存储过程,视图,分区,分库分表,数据库集群,数据库负载均衡
- 创建数据库、表、主外键、各种约束、存储过程、视图、索引、事务使用、触发器、创建登录账号、数据库用户 Sql语句示例
- mysql一些复制表、增删改索引、建存储过程、创建函数、创建触发器的一些命令
- MYSQL设置触发器权限问题的解决方法
- MySQL 登录权限设置SQL语句
- [MySQL] 存储过程、函数、触发器和视图的权限检查
- Mysql:SQL语句:用户、权限、信息、状态、设置、复制、会话、prepare sql 等
- MySQL 查看表结构、索引、触发器 的SQL语句
- MySQL中创建存储过程时通过DEFINER和SQL SECURITY设置访问权限
- [MySQL] 存储过程、函数、触发器和视图的权限检查
- mysql字段类型 唯一索引 记录不重复设置
- mysql设置用户名密码,存储过程,触发器
- Mysql 存储过程,触发器,视图 学习记录
- Mysql 存储过程、函数、触发器和视图的权限检查
- MySQL最长用的32条语句(包括建表、写入数据、建外键、建索引、用户与权限等)
- MYSQL设置触发器权限