PGSQL数据库函数范例
pgsql是一个很强大的数据库,就好象nginx比apache一样。
而pgsql的函数的语法跟php书写语法的确有一定差别,但是万变不离其宗。
以下是一个传入用户id和密码,然后更新表中的两个字段信息的范例:
DECLARE
salt character(32);
hashValue character(32);
uid bigint;
BEGIN
IF is_existed_userid(_userid) IS FALSE THEN
RETURN -1;
END IF;
salt := md5(random()::TEXT);
hashValue := md5(salt || _password);
UPDATE users SET "password_hash"=hashValue,"password_salt"=salt WHERE userid=_userid;
RETURN _userid;
END;
大致的内容就是定义几个参数,然后在BEGIN开始有一个判断,是判断用户名是否存在。
最后如果没return的话,那么就执行下面的update语句。
另外,mysql创建批量循环语句插入,可以参考:
CREATE DEFINER=`jroot`@`%` PROCEDURE `xxxx`()
BEGIN
#Routine body goes here...
declare i int;
set i = 1;
while i < 5000000 do
INSERT INTO `testings`.`cdb_intersect` (`cid`, `xid`) VALUES (i, i);
set i = i + 1;
end while;
END