批量清空指定用户的表
CREATE OR REPLACE FUNCTION f_truncate_tables(_username text)
RETURNS void
LANGUAGE plpgsql AS
$func$
BEGIN
EXECUTE
(SELECT 'TRUNCATE TABLE '
|| string_agg(format('%I.%I', schemaname, tablename), ', ')
|| ' CASCADE'
FROM pg_tables
WHERE tableowner = _username
AND schemaname = 'public'
);
END
$func$;
复制
- 实操
[postgres@node01 ~]$ psql -d test
psql (14.5)
Type "help" for help.
test=# create table t1(id int);
CREATE TABLE
test=# create table t2(id int);
CREATE TABLE
test=# insert into t1 values(1),(2);
INSERT 0 2
test=# insert into t2 values(1),(2),(3);
INSERT 0 3
test=# select * from t1;
id
----
1
2
(2 rows)
test=# select * from t2;
id
----
1
2
3
(3 rows)
test=# CREATE OR REPLACE FUNCTION f_truncate_tables(_username text)
test-# RETURNS void
test-# LANGUAGE plpgsql AS
test-# $func$
test$# BEGIN
test$# EXECUTE
test$# (SELECT 'TRUNCATE TABLE '
test$# || string_agg(format('%I.%I', schemaname, tablename), ', ')
test$# || ' CASCADE'
test$# FROM pg_tables
test$# WHERE tableowner = _username
test$# AND schemaname = 'public'
test$# );
test$# END
test$# $func$;
CREATE FUNCTION
test=#
test=# select f_truncate_tables('postgres');
f_truncate_tables
-------------------
(1 row)
test=# \dt
List of relations
Schema | Name | Type | Owner
--------+------+-------+----------
public | t1 | table | postgres
public | t2 | table | postgres
(2 rows)
test=# select * from t1;
id
----
(0 rows)
test=# select * from t2;
id
----
(0 rows)
复制
最后修改时间:2023-05-03 15:35:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
2096次阅读
2025-04-21 16:58:09
QPlus V6.3 更新,新增PostgreSQL与PolarDB PG支持,OceanBase 容灾管理重磅上线
沃趣科技
269次阅读
2025-05-13 09:39:27
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
219次阅读
2025-05-13 16:21:59
中国PostgreSQL培训认证体系新增PGAI应用工程师方向
开源软件联盟PostgreSQL分会
197次阅读
2025-05-06 10:21:13
华象新闻 | PostgreSQL 18 Beta 1、17.5、16.9、15.13、14.18、13.21 发布
严少安
174次阅读
2025-05-09 11:34:10
PG生态赢得资本市场青睐:Databricks收购Neon,Supabase融资两亿美元,微软财报点名PG
老冯云数
173次阅读
2025-05-07 10:06:22
SQL 优化之 OR 子句改写
xiongcc
152次阅读
2025-04-21 00:08:06
告别老旧mysql_fdw,升级正当时
NickYoung
128次阅读
2025-04-29 11:15:18
PostgreSQL中文社区亮相于第八届数字中国峰会
PostgreSQL中文社区
121次阅读
2025-05-07 10:06:20
PostgreSQL的dblink扩展模块使用方法
szrsu
117次阅读
2025-04-24 17:39:30