PythonでMySQLのテーブルを丸ごとコピーする方法をわかりやすく解説
Pythonを使えば、MySQLに存在する既存テーブルのコピーを簡単に作成できます。コピーには、カラム(列)やその定義、テーブル内のすべての行データが含まれます。
基本構文
CREATE TABLE table_name SELECT * FROM existing_table
- table_name:新しく作成するテーブルの名前
- existing_table:コピー元となる既存テーブルの名前
PythonでMySQLのテーブルをコピーする手順
- MySQLコネクタ(mysql.connector)をインポートする
- connect() メソッドでデータベースへの接続を確立する
- cursor() メソッドでカーソルオブジェクトを作成する
- 適切なSQL文を使ってクエリを作成する
- execute() メソッドでSQLクエリを実行する
- 接続を閉じる
サンプルテーブル
ここでは、次のような「Students」というテーブルがあると仮定します。
+----------+---------+-----------+------------+ | Name | Class | City | Marks | +----------+---------+-----------+------------+ | Karan | 4 | Amritsar | 95 | | Sahil | 6 | Amritsar | 93 | | Kriti | 3 | Batala | 88 | | Khushi | 9 | Delhi | 90 | | Kirat | 5 | Delhi | 85 | +----------+---------+-----------+------------+
実装例
上記の「Students」テーブルをコピーし、「CopyStudents」という名前の新しいテーブルを作成してみましょう。
import mysql.connector
db = mysql.connector.connect(
host="your host",
user="your username",
password="your password",
database="database_name"
)
cursor = db.cursor()
# StudentsテーブルをCopyStudentsとしてコピーする
query = "CREATE TABLE CopyStudents SELECT * FROM Students"
cursor.execute(query)
# 新しいテーブルから行を取得する
query1 = "SELECT * FROM CopyStudents"
cursor.execute(query1)
# コピーしたテーブルの内容を表示する
for row in cursor:
print(row)
db.close()実行結果
('Karan', 4, 'Amritsar', 95)
('Sahil', 6, 'Amritsar', 93)
('Kriti', 3, 'Batala', 88)
('Khushi', 9, 'Delhi', 90)
('Kirat', 5, 'Delhi', 85)ポイントと注意点
この方法では、「Students」テーブルのすべての行・カラム・カラム定義が「CopyStudents」テーブルへそのままコピーされます。
なお、CREATE TABLE ... SELECT * 構文はデータと構造をコピーしますが、主キーやインデックス、AUTO_INCREMENT属性などの一部の制約は引き継がれない場合があります。これらも含めて完全に複製したい場合は、SHOW CREATE TABLE で元テーブルの定義を確認し、必要に応じて制約を明示的に追加することをおすすめします。
-
Pythonでリストをコピーする方法まとめ:スライス、list()、copyモジュールの使い分け
Pythonでは、代入演算子(=)を使っても新しいオブジェクトは作成されません。既存のオブジェクトに別の名前(参照)を付けるだけです。この挙動は、組み込み関数 id() を使うことで確認できます。 >>> L1 = [1,2,3,4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928 L1 と L2 のIDが同じであることから、両者が同一のオブジェクトを参照していることがわかります。つまり、どちらか一方を変更するともう一方にも影響が及びます。リストを
-
Pythonでファイルを削除する方法をわかりやすく解説
Pythonでファイルを削除する基本の方法 Pythonでは、標準ライブラリのosモジュールを使うことで、単一のファイルや空のフォルダ(ディレクトリ)を簡単に削除できます。外部ライブラリのインストールは不要で、import osと記述するだけですぐに利用できるのが魅力です。 os.remove() でファイルを削除する たとえば、カレントディレクトリにある my_file.txt というファイルを削除したい場合は、次のように記述します。 >>> import os >>> os.remove(my_file.txt) os.remove() の引数には、削