📜  Python PostgreSQL – 删除表

📅  最后修改于: 2022-05-13 01:55:34.302000             🧑  作者: Mango

Python PostgreSQL – 删除表

在本文中,我们将看到如何使用 pyscopg2 模块Python在 PostgreSQL 中删除表。在 PostgreSQL 中,DROP TABLE 用于从数据库中删除现有表。它删除表定义以及该表的所有关联数据、索引、规则、触发器和约束。如果特定表不存在,则显示错误。

使用的表:

在这里,我们使用accounts 表进行演示。

现在让我们删除这个表,因为我们将使用 will psycopg2模块连接 PostgreSQL 并在 cursor.execute(query) 对象中执行 SQL 查询。



示例 1:使用 psycopg2 删除表

这里我们将使用 DELETE 子句删除表。

代码:

Python3
# importing psycopg2
import psycopg2
  
conn=psycopg2.connect(
    database="test",
    user="postgres",
    password="password",
    host="localhost",
    port="5432"
)
  
  
# Creating a cursor object using the cursor() 
# method
cursor = conn.cursor()
  
# drop table accounts
sql = '''DROP TABLE accounts '''
  
# Executing the query
cursor.execute(sql)
print("Table dropped !")
  
# Commit your changes in the database
conn.commit()
  
# Closing the connection
conn.close()


Python3
# importing psycopg2
import psycopg2
  
conn=psycopg2.connect(
    database="geeks",
    user="postgres",
    password="root",
    host="localhost",
    port="5432"
)
  
  
# Creating a cursor object using the cursor()
# method
cursor = conn.cursor()
  
# drop table accounts
sql = '''DROP table IF EXISTS accounts '''
  
# Executing the query
cursor.execute(sql)
  
print("Table dropped !")
# Commit your changes in the database
conn.commit()
  
# Closing the connection
conn.close()


输出:

Table dropped !

示例 2:在检查是否存在之前删除表

如果您再次尝试删除同一个表,因为您已经删除了它,您将收到“表不存在”的错误消息,因此我们可以使用IF EXIST 子句来解决

代码:

蟒蛇3

# importing psycopg2
import psycopg2
  
conn=psycopg2.connect(
    database="geeks",
    user="postgres",
    password="root",
    host="localhost",
    port="5432"
)
  
  
# Creating a cursor object using the cursor()
# method
cursor = conn.cursor()
  
# drop table accounts
sql = '''DROP table IF EXISTS accounts '''
  
# Executing the query
cursor.execute(sql)
  
print("Table dropped !")
# Commit your changes in the database
conn.commit()
  
# Closing the connection
conn.close()

输出:

Table dropped !

执行脚本后,让我们检查 PostgreSQL 中的表: