Python MySQL 删除表


你可以使用 删除表 陈述。你只需要指定你需要删除的表的名称。

语法

以下是 MySQL 中 DROP TABLE 语句的语法:

DROP TABLE table_name;

例子

在删除表之前,使用 SHOW TABLES 语句获取表的列表,如下所示:

mysql> SHOW TABLES;
+-----------------+
| Tables_in_mydb  |
+-----------------+
| contact         |
| cricketers_data |
| employee        |
| sample          |
| tutorials       |
+-----------------+
5 rows in set (0.00 sec)

以下语句将名为 sample 的表从数据库中完全删除:

mysql> DROP TABLE sample;
Query OK, 0 rows affected (0.29 sec)

由于我们已经从 MySQL 中删除了名为 sample 的表,如果你再次获取表列表,你将不会在其中找到表名 sample。

mysql> SHOW TABLES;
+-----------------+
| Tables_in_mydb  |
+-----------------+
| contact         |
| cricketers_data |
| employee        |
| tutorials       |
+-----------------+
4 rows in set (0.00 sec)

使用python删除表


你可以随时删除表,使用 MYSQL 的 DROP 语句,但在删除任何现有表时需要非常小心,因为删除表后丢失的数据将无法恢复。

要使用 python 从 MYSQL 数据库中删除表,请调用 执行() 游标对象上的方法并将 drop 语句作为参数传递给它。

例子

下表从数据库中删除了一个名为 EMPLOYEE 的表。

import mysql.connector

#establishing the connection conn = mysql.connector.connect(
    user='root', password='password', host='127.0.0.1', database='mydb'
)

#Creating a cursor object using the cursor() method 
cursor = conn.cursor()

#Retrieving the list of tables print("List of tables in the database: ") 
    cursor.execute("SHOW Tables") print(cursor.fetchall())

#Doping EMPLOYEE table if already exists cursor.execute
    ("DROP TABLE EMPLOYEE") print("Table dropped... ")

#Retrieving the list of tables print(
    "List of tables after dropping the EMPLOYEE table: ")
    cursor.execute("SHOW Tables") print(cursor.fetchall())

#Closing the connection conn.close()
List of tables in the database:
[('employee',), ('employeedata',), ('sample',), ('tutorials',)]
Table dropped...
List of tables after dropping the EMPLOYEE table:
[('employeedata',), ('sample',), ('tutorials',)]

仅在存在时删除表

如果尝试删除数据库中不存在的表,则会出现以下错误:

mysql.connector.errors.ProgrammingError: 1051 (42S02): 
    Unknown table 'mydb.employee'

你可以通过在删除之前验证表是否存在来防止此错误,方法是将 IF EXISTS 添加到 DELETE 语句中。

import mysql.connector

#establishing the connection
conn = mysql.connector.connect(
    user='root', password='password', host='127.0.0.1', database='mydb')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Retrieving the list of tables
print("List of tables in the database: ")
cursor.execute("SHOW Tables")
print(cursor.fetchall())

#Doping EMPLOYEE table if already exists
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
print("Table dropped... ")

#Retrieving the list of tables
print("List of tables after dropping the EMPLOYEE table: ")
cursor.execute("SHOW Tables")
print(cursor.fetchall())

#Closing the connection
conn.close()
List of tables in the database:
[('employeedata',), ('sample',), ('tutorials',)]
Table dropped...
List of tables after dropping the EMPLOYEE table:
[('employeedata',), ('sample',),
('tutorials',)]