PostgreSQL 删除数据库

译者:anxin
日期:2017-10-10

本教程从四个方面解释在PostgreSQL中删除数据库:

  1. 使用 dropdb 删除 PostgreSQL 数据库
  2. 使用 psql 删除 PostgreSQL 数据库
  3. 使用PHP脚本删除PostgreSQL数据库
  4. 使用Python脚本删除PostgreSQL数据库

使用 dropdb 删除 PostgreSQL 数据库

用户登陆数据库后,使用dropdb删除PostgreSQL数据库的用户必须是超级用户或者数据库的所有者。

1)首先以Linux系统用户postgres用户登陆Shell

su - postgres

2)使用 dropdb 删除数据库

dropdb yuzhi100

以上命令删除数据库yuzhi100

使用 psql 删除 PostgreSQL 数据库

1)首先以Linux系统用户postgres用户登陆Shell

su - postgres

2)使用psql登陆数据库

psql

3)删除数据库yuzhi100

DROP DATABASE yuzhi100;

使用PHP脚本删除PostgreSQL数据库

PHP使用 pg_query() 函数来删除 PostgreSQL 数据库。

pg_query()语法形式

该函数有两个参数,在执行成功时返回数据,否则返回 FALSE。

pg_query ([ $connection ], string $query )

参数描述

  • connection:数据库的连接,如果没有提供则使用默认的connection,默认connection是使用pg_connect()最后的一次连接。
  • query:必须的参数,要执行的SQL语句。

PHP脚本删除PostgreSQL数据库实例

以下PHP代码演示了使用PHP来删除一个PostgreSQL数据库:

<?php

    //其中参数的含义是
    //host=localhost,本地计算机,默认就是本地计算机
    //port=5432,默认端口号
    //dbname=mydb,指定要连接的数据库
    //user=dbuser,连接数据库的用户
    //password=dbpassword,连接数据库用户的密码

    $connection_string = "host=localhost port=5432 dbname=mydb user=dbuser password=dbpassword";

    $conn = pg_connect( $connection_string );
    $result = pg_query($conn, "DROP DATABASE yuzhi100;");

    if(! $result )
    {
        exit('删除数据库失败!');
    }
    echo '删除数据库成功!';

    pg_close($conn);

使用Python脚本删除PostgreSQL数据库

Python使用Psycopg2模块的cursor类的execute()方法来删除 PostgreSQL 数据库。

cursor.execute()语法形式

该函数有两个参数,在执行成功时返回数据,否则返回 FALSE。

execute(query, vars=None)

参数描述

  • query:必须的参数,要执行的SQL语句。
  • vars:要替换的SQL语句中的变量值。

Python脚本连接PostgreSQL实例

以下Python代码使用wsgi程序演示了使用Python来删除一个PostgreSQL数据库

删除数据库需要设置事务隔离级别为ISOLATION_LEVEL_AUTOCOMMIT,因为删除数据库DROP DATABASE不能和其他语句在同一个事务中执行

# -*- coding: utf-8 -*-
import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

def application(environ, start_response):
    try:
        conn = psycopg2.connect("host=localhost port=5432 dbname=mydb user=dbuser password=dbpassword")
        try:
            conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
            cur = conn.cursor()
            cur.execute("DROP DATABASE yuzhi100;")
        except psycopg2.OperationalError:
            output = bytes('删除数据库失败!', 'utf-8')
    except psycopg2.OperationalError:
        output = bytes('数据库连接失败!', 'utf-8')
    else:
        cur.close()
        conn.close()
        output = bytes('删除数据库成功!', 'utf-8')
    status = '200 OK'
    response_headers = [('Content-type', 'text/html; charset=utf-8'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]
本文链接:/tutorial/postgresql/postgresql-shanchu-shujuku

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!