Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでMySQLのテーブルを丸ごとコピーする方法をわかりやすく解説

Pythonを使えば、MySQLに存在する既存テーブルのコピーを簡単に作成できます。コピーには、カラム(列)やその定義、テーブル内のすべての行データが含まれます。

基本構文

CREATE TABLE table_name SELECT * FROM existing_table
  • table_name:新しく作成するテーブルの名前
  • existing_table:コピー元となる既存テーブルの名前

PythonでMySQLのテーブルをコピーする手順

  1. MySQLコネクタ(mysql.connector)をインポートする
  2. connect() メソッドでデータベースへの接続を確立する
  3. cursor() メソッドでカーソルオブジェクトを作成する
  4. 適切なSQL文を使ってクエリを作成する
  5. execute() メソッドでSQLクエリを実行する
  6. 接続を閉じる

サンプルテーブル

ここでは、次のような「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 で元テーブルの定義を確認し、必要に応じて制約を明示的に追加することをおすすめします。

  1. Pythonでリストをコピーする方法まとめ:スライス、list()、copyモジュールの使い分け

    Pythonでは、代入演算子(=)を使っても新しいオブジェクトは作成されません。既存のオブジェクトに別の名前(参照)を付けるだけです。この挙動は、組み込み関数 id() を使うことで確認できます。 >>> L1 = [1,2,3,4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928 L1 と L2 のIDが同じであることから、両者が同一のオブジェクトを参照していることがわかります。つまり、どちらか一方を変更するともう一方にも影響が及びます。リストを

  2. Pythonでファイルを削除する方法をわかりやすく解説

    Pythonでファイルを削除する基本の方法 Pythonでは、標準ライブラリのosモジュールを使うことで、単一のファイルや空のフォルダ(ディレクトリ)を簡単に削除できます。外部ライブラリのインストールは不要で、import osと記述するだけですぐに利用できるのが魅力です。 os.remove() でファイルを削除する たとえば、カレントディレクトリにある my_file.txt というファイルを削除したい場合は、次のように記述します。 >>> import os >>> os.remove(my_file.txt) os.remove() の引数には、削