PythonMySQL-ドロップテーブル
を使用してテーブル全体を削除できます DROP TABLEステートメント。削除する必要のあるテーブルの名前を指定するだけです。
構文
以下は、MySQLのDROPTABLEステートメントの構文です。
DROP TABLE table_name;
例
テーブルを削除する前に、次のようにSHOWTABLESステートメントを使用してテーブルのリストを取得します。
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という名前のテーブルを削除したため、テーブルのリストを再度取得しても、テーブル名のサンプルは含まれていません。
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ステートメントにIFEXISTSを追加して、削除する前にテーブルが存在するかどうかを確認することで、このエラーを防ぐことができます。
Example
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()
Output
List of tables in the database:
[('employeedata',), ('sample',), ('tutorials',)]
Table dropped...
List of tables after dropping the EMPLOYEE table:
[('employeedata',), ('sample',),
('tutorials',)]