Postgresql函数返回受影响的行数
发布时间:2020-12-13 16:06:26 所属栏目:百科 来源:网络整理
导读:我创建了一个函数.我定义了返回值void.但我想显示受影响的行数.我能怎么做? CREATE OR REPLACE FUNCTION update() RETURNS void AS $BODY$BEGIN update test_a set name='cde' where name='abc'; update test_b set name='mno' where name='klm';END;$BODY$
我创建了一个函数.我定义了返回值void.但我想显示受影响的行数.我能怎么做?
CREATE OR REPLACE FUNCTION update() RETURNS void AS $BODY$ BEGIN update test_a set name='cde' where name='abc'; update test_b set name='mno' where name='klm'; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION update() OWNER TO postgres; 解决方法
你应该研究GET DIAGNOSTICS,因为这是一个PLpgSQL函数.您可能还会发现UPDATE / INSERTS的Postgres SQL扩展RETURNING *很有用.
CREATE OR REPLACE FUNCTION update() RETURNS void AS $BODY$ DECLARE a_count integer; b_count integer; BEGIN update test_a set name='cde' where name='abc'; GET DIAGNOSTICS a_count = ROW_COUNT; update test_b set name='mno' where name='klm'; GET DIAGNOSTICS b_count = ROW_COUNT; RAISE NOTICE 'The rows affected by A=% and B=%',a_count,b_count ; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION update() OWNER TO postgres; 根据您可能想要实现的内容,可以使用特殊的布尔变量“FOUND”; UPDATE,INSERT和DELETE语句设置FOUND如果至少有一行受影响,则为true;如果没有行受影响,则为false. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |