一、存储过程
CREATE FUNCTION del_ref (per_size INT) RETURNS void AS $$
DECLARE
ref_id record ;
mid_count int;
BEGIN
FOR ref_id IN EXECUTE 'SELECT id FROM cdr_reference limit '||$1 loop
SELECT INTO mid_count count(id) FROM resource_reference_index WHERE reference_id=ref_id.id;
if mid_count=0 THEN
DELETE FROM cdr_reference WHERE id=ref_id.id;
END IF;
END loop ;
raise notice 'delete reference finished' ;
END $$ LANGUAGE plpgsql;
1、定义函数,运行时需传入一个int类型参数
2、定义变量
3、每次查出一定数量(传的参数)数据,然后循环每条数据记录
4、into mid_count count(id)是将查出id和赋值给变量mid_count
5、if 条件 then SQL语句 end if;条件判断
执行生成函数,然后运行函数即可,可视化客户端在函数里面找到对应右键运行;命令执行的方式直接参考postgresql官网
二、常用SQL
ALTER TABLE cdr_resource
ALTER COLUMN retry_status SET DEFAULT 1,
ADD COLUMN reason VARCHAR,
DROP COLUMN original_id;
修改字段;新增字段;删除字段
ALTER TABLE retry_record ALTER COLUMN retry_version TYPE int4 USING retry_version::integer;
强制修改字段类型。
LIMIT 2 OFFSET 1
查出2条,每次向后偏移1条数据。