我的数据库中有下表,其中包含以下代码:
CREATE TABLE public.users(
owner character varying(32) COLLATE pg_catalog."default" NOT NULL,
password character varying(16) COLLATE pg_catalog."default" NOT NULL,
createdate timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
lastlogin timestamp without time zone,
CONSTRAINT users_pkey PRIMARY KEY (owner) );
以下问题,是否可以编写一个函数/存储过程,该函数/存储过程自动保存和更新所有者的上次登录信息以及该表的lastlogin值?
答案 0 :(得分:0)
PostgreSQL doesn't support stored procedures本身,但是您可以使用函数获得相同的结果。例如:
CREATE FUNCTION MyInsert(_sno integer, _eid integer, _sd date, _ed date, _sid integer, _status boolean)
RETURNS void AS
$BODY$
BEGIN
INSERT INTO app_for_leave(sno, eid, sd, ed, sid, status)
VALUES(_sno, _eid, _sd, _ed, _sid, _status);
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
然后可以这样称呼它:
select * from MyInsert(1,101,'2013-04-04','2013-04-04',2,'f' );
与真正的存储过程相比,Pg的存储函数的主要限制是: