侧边栏壁纸
  • 累计撰写 2,046 篇文章
  • 累计创建 73 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

PostgreSQL常用命令

大猿本猿
2022-01-03 / 416 阅读 / 0 字

切换用户

本机切换到数据库自动创建的用户

su - postgres

进入数据库命令

```Plain Text

以-U后面接的用户登录

root@kali:~# psql -U postgres -h 127.0.0.1

然后命令行会变化为:

```bash
root@kali:~# su - postgres
postgres@kali:~$ psql
psql (9.4.6)
输入 "help" 来获取帮助信息.

postgres=# 

创建用户

postgres=# create user test with password 'test';
CREATE ROLE

创建数据库

postgres=# create database testdb owner test;
CREATE DATABASE

删除数据库

```Plain Text -- 删除数据库 pro_1217 drop database pro_1217;

### 授权
```bash
postgres=# grant all privileges on database testdb to test;
GRANT

退出

postgres=# \q

断开已连的数据库

-- 断开连接数据库:pro_1217 的所有连接
-- 注意:不能在pro_1217中执行,需要切换到其他schema
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname = 'pro_1217'
  AND pid <> pg_backend_pid();

删除数据库中的表

-- 删除当前shchema下的所有表
DO
$$
    DECLARE
        r RECORD;
    BEGIN
        -- 只删除表,不删除其他
        -- 放在要删除的表的库的shcema下
        -- 如果是用单行执行的客户端工具,记得全选整个语句才能执行,单行执行会报语法错误。
        FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema())
            LOOP
                EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
            END LOOP;
    END
$$;