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',)]