`

mysql 存储过程常用命令

 
阅读更多

关于存储过程的写法见:http://trinea.iteye.com/blog/977141

mysql中文参考文档见:http://dl.iteye.com/topics/download/82db8bb1-7c55-3e74-9f56-de5f8e004ded

 

0、存储过程中需要注意变量名最好和数据库字段名不要冲突

 

1、定义变量

DECLARE id int DEFAULT 1000000;

 DEFAULT 1000000可以省略,表示默认值。上句类似java的 int id = 1000000;

 

2、变量值赋值、算术操作

DECLARE id int DEFAULT 1000000;
DECLARE totalCount int DEFAULT 10000;
DECLARE maxId int;
SET maxId = id + totalCount;

 类似java

int id = 1000000;
int totalCount = 10000;
int maxId;
maxId = id + totalCount;

 

3、while循环

WHILE id<maxId DO
          set id=id+1;
END WHILE;

 

4、done循环

REPEAT  

UNTIL done END REPEAT;

 

5、事务

START TRANSACTION;

COMMIT;

 

6、if语句以及select结果判断

有时候需要在插入前判断是否该条记录已经存在,这时要先select,并判断select的结果,如下:

DECLARE bExist int;
select count(*) into bExist from relation where user_id = userId and member_id = '1009750';
if bExist=0 then
	insert into relation(id, user_id, member_id, gmt_create)
	values(CONCAT('', baseIndexId + userId), userId, '1009750', now());
end if;

上面语句就是先获取表中是否存在记录将count保存到变量bExist,根据变量的值判断是否insert

 

7、字符串操作

简单的concat,如CONCAT('user', id)

其他参考:http://trinea.iteye.com/admin/blogs/977156

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics