✍23 postgresql批量删除表

在需要删除的数据库下

CREATE FUNCTION del_ora_table() RETURNS void AS $$
DECLARE
    tmp VARCHAR(512);
DECLARE names CURSOR FOR 
    select tablename from pg_tables where schemaname='public';
BEGIN
  FOR stmt IN names LOOP
    tmp := 'DROP TABLE '|| quote_ident(stmt.tablename) || ' CASCADE;';
    RAISE NOTICE 'notice: %', tmp;
    EXECUTE 'DROP TABLE '|| quote_ident(stmt.tablename) || ' CASCADE;';
  END LOOP;
  RAISE NOTICE 'finished .....';
END;
 
$$ LANGUAGE plpgsql;

--执行函数批量删除表
select del_ora_table();

导入 sql 文件

docker exec -i 5fe0254ef04a psql -U root -d dcs2 < dcs2.sql

删除表内容

TRUNCATE TABLE web_server_c_img_data(表名)

新建用户和数据库

# su root           #切换到root用户
# createuser -s postgres  # 建一个新的 PostgreSQL 用户
# su - postgres    #首先切换到postgres
# psql
postgres=# create user username with password '****';
CREATE ROLE
postgres=#
  • 用户名首字母不能大写
  • 要以英文分号结尾
  • 密码需要引号包裹

创建数据库

postgres=# create database dbtest owner username;   #创建数据库指定所属者
CREATE DATABASE
postgres=#
postgres=# grant all on database dbtest to username;  #将dbtest所有权限赋值给username

docker 启动

docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres:12.1

数据库导入导出

参考: https://www.cnblogs.com/tangda/p/12054958.html

1.导出数据库

  • 导出单个表

例:从ip为xxx的数据库monitor中导出threshold的表结构和数据到本地文件threshold.sql:

pg_dump -t threshold -h 135.32.94.142 monitor -U monitor -p 5432  -f threshold.sql

参数说明:-t 指定导出的表名;-h 数据库地址;-U 数据库用户;-p 访问端口;-f 导出到指定文件;

  • 导出所有表和所有数据

例:从ip为xxx的数据库monitor导出所有表结构和数据到文件monitor.sql:

pg_dump -h 135.32.94.142 monitor -U monitor -p 5432  -f monitor.sql
  • 仅导出所有表结构

例:从ip为xxx的数据库monitor导出所有的表结构到文件monitor.sql:

pg_dump -s -h 135.32.94.142 monitor -U monitor -p 5432  -f monitor.sql 

参数说明:-s 表示只导出表结构,不导数据

2.导入数据库

  • 导入到远程数据库

例:从本地文件threshold.sql导入表结构和数据到ip为xxx的数据库monitor:

psql -h 135.32.9.99 -d monitor -U monitor -f threshold.sql

参数说明: -h 数据库地址;-d 数据库;-U 指定用户;-f 要导入的文件 注:文件就是从数据库导出的文件。

  • 导入到本地数据库

psql -h 0.0.0.0  -d monitor -U monitor -p 5432 -f monitor.sql 

参数说明: -p 指定数据库服务端口,视情况而变,默认是5432端口的可以不加

sql文件导入导出

1.导入

psql -d 数据库名 -h ip -p 端口 -U 用户 -f  sql文件路径

2.导出

pg_dump   -h ip -p 端口  -U 用户  -f  导出路径  数据库
  • 前提,电脑没有网,注册机无法试用,系统太旧 xp,无奈试用该方法

1.删除注册表

image-20211009113035634

image-20211009113045182

2.放置文件刷新

image-20211009113126476

3.调整系统时间,不联网

  • 更改时间后再试用

image-20211009113325416

4.linux, mac 方法

image-20211009113222210

posted @ 2021-11-25 22:04  给你骨质唱疏松  阅读(759)  评论(0编辑  收藏  举报