关于存储过程的写法见: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)