Python MySQL 删除表
你可以使用 DROP TABLE 语句删除整个表。你只需要指定你需要删除的表的名称。
语法
以下是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数据库中删除一个表,请在游标对象上调用 execute() 方法,并将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'
你可以通过在DELETE语句中加入IF EXISTS,在删除前验证表是否存在,来防止这个错误。
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',)]