一、存储过程
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条数据。