¿Cómo copiar una tabla en MySQL usando Python?

 En este artículo, crearemos una tabla en MySQL y crearemos una copia de esa tabla usando Python. Copiaremos toda la tabla, incluidas todas las columnas y la definición de las columnas, así como todas las filas de datos de la tabla.

Para conectarnos a la base de datos MySQL usando python , necesitamos el módulo PyMySql . La clase de cursor permite que Python ejecute comandos SQL. Los cursores son creados por el método connection_name.cursor() , donde connection_name es el enlace hecho a SQL Database. Una vez que se establece la conexión, se usa cursor.execute() para ejecutar las instrucciones SQL.

Entendamos lo anterior tomando un ejemplo. Supongamos que en MySQL creamos una prueba de base de datos y contiene una tabla llamada geeksfoegeeks y tiene el siguiente esquema y los siguientes datos:

Base de datos SQL

Para copiar una tabla en MySQL usamos la siguiente consulta:
 

CREATE TABLE table-name SELECT * FROM table-name;

Ahora, a continuación se muestra el programa para copiar toda la tabla usando python:

Python3

# import required modules
import pymysql
  
  
# establish connection to SQL database
connection = pymysql.connect(
    
    # specify hostname
    host="localhost",
      
    # specify user of mysql database
    user="root",
      
    # specify password for above user
    password="1234",
      
    # default port number for mysql is 3306
    port=3306,
      
    # specify database name on which you want to work
    db="test"
)
  
  
# make a cursor
mycursor = connection.cursor()
  
# create a new table geeksforgeekscopy and copy all 
# records from geeksfoegeeks into the newly created table
mycursor.execute("create table geeksforgeekscopy select * from geeksfoegeeks")
  
# list all the tables
mycursor.execute("Show tables")
  
# fetchall() will store all the names 
# of tables into query1
query1 = mycursor.fetchall()
  
# print name of tables
for i in query1:
    print(i)
  
# read all records from copy table
mycursor.execute("Select * from geeksforgeekscopy")
  
# fetchall() will store all the records 
# of copy table into query2
query2 = mycursor.fetchall()
  
# print all records
for i in query2:
    print(i)

Producción:

Salida de Python

En la figura anterior, pudimos ver la lista de tablas seguida de todos los registros de la tabla geeksforgeekscopy . El resultado anterior también se ha confirmado al proporcionar el resultado de la base de datos MySQL.

Salida MySQL

Aquí hay otro ejemplo que muestra cómo crear una nueva tabla a partir de los datos y el esquema de una tabla anterior. A continuación se muestra la tabla previamente existente:

Ahora, use el siguiente script para crear una copia de la tabla anterior en la base de datos:

Python3

# import required modules
import pymysql
  
# connect python with mysql with your hostname, 
# username, password and database
connection= pymysql.connect("localhost", "root", "", "geek")
  
# make a cursor
mycursor = connection.cursor()
  
# create a new table and copy all records from 
# previous table into the newly created table
mycursor.execute("create table geeksdemocopy select * from geeksdemo")
  
# list all the tables
mycursor.execute("Show tables")
  
# fetchall() will store all the names of tables into query1
query1 = mycursor.fetchall()
  
# print name of tables
for i in query1:
    print(i)
  
# read all records from copy table
mycursor.execute("Select * from geeksdemocopy")
  
# fetchall() will store all the records of copy table into query2
query2 = mycursor.fetchall()
  
# print all records
for i in query2:
    print(i)

Producción:

A continuación se muestra la nueva tabla cuyos datos y esquema se copian de la tabla anterior:

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *