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

原文链接:https://blog.yongit.com/note/95016.html