psqlgres批量增加删除数据

(1)批量增加数据
批量增加数据脚本add_batch.sql

create function add_account(INTEGER) returns TEXT as '
DECLARE
num INTEGER := 1; 
input_num ALIAS FOR $1;
number INTEGER := 0;  
BEGIN 
	number :=num+input_num;
	WHILE num < number loop 
		insert into tbl_real_net (real_id,net_id)
		 values( num,num +1);
		num :=num +1;
	end loop;
	RETURN ''增加成功'';
END;' 
language 'plpgsql';


批量增加记录说明

1.把add_batch.sql文件拷贝到/database/pg/postgresql-7.3.1/bin目录下
2.执行以下命令
1.------su pg
2.------cd /database/pg/postgresql-7.3.1/bin
3.------./createlang plpgsql beap
4.------./psql mytest < add_batch.sql
5.------./psql mytest
6.------select add_account(10000);


注意:
执行到4时,如果成功会返回字符串CREATE FUNCTION。
执行到6时,如果成功会显示’增加成功‘。
(2)批量删除数据
有时库表中会存在很多需要删除的同类型名称的库表,而删除库表时又需要精确的库表名称,一个一个获取删除会很费事。因此,使用一下方法可方便删除数据,并提高工作效率。
1.假设数据库存在很多类似testabc_xxx_xxx的库表,需要一起删除
我们可以先获取这些库表的完整名称和删除语句,写入到一个临时表中
select 'truncate table ' || tablename || ';drop table ' || tablename || ';'
into temptable from pg_tables where tablename like 'testabc_%';

这样就将所有的删除语句都写入到 temptable中
2.然后将temptable库表中的内容拷贝到文件中
copy tablename to '/database/temp.sql';

在文件temp.sql中我们会看到类似
truncate table testabc_123_456;drop table testabc_123_456;

的执行删除的sql。
3.再执行文件内容到相应的数据库中
./psql mytest < temp.sql

这样就会批量执行删除库表的操作。当然也可以变换此连接符来做到批量修改,批量增加数据等操作

猜你喜欢

转载自cyanqx.iteye.com/blog/1869748