zoukankan      html  css  js  c++  java
  • ✍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

  • 相关阅读:
    自定义控件其实很简单5/12
    自定义控件其实很简单1/3
    自定义控件其实很简单1/4
    自定义控件其实很简单1/6
    ListView addfooter 没显示 footer的原因(之一)
    android 版本和 api level 的对应关系
    derby入门
    OA系统与ERP的区别
    Windows下的定时任务
    linux学习笔记——安装问题
  • 原文地址:https://www.cnblogs.com/songhaixing/p/15605214.html
Copyright © 2011-2022 走看看