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