"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 테이블에 많은 수의 레코드를 삽입하는 Python 코드입니다.

MySQL 테이블에 많은 수의 레코드를 삽입하는 Python 코드입니다.

2024-08-28에 게시됨
검색:504

Python code that inserts a large number of records into a MySQL table.

이 Python 코드는 이름, 연령 및 도시 열이 포함된 my_table이라는 MySQL 테이블을 생성합니다.

그런 다음 데모용으로 무작위 데이터가 포함된 100만 개의 레코드를 테이블에 삽입합니다.

import mysql.connector
import random

# Database configuration
db_config = {
    'host': '127.0.0.1',
    'port': 3309,
    'user': 'my_user',
    'password': 'my_password',
    'database': 'my_database'
}

# Function to create connection and insert records
def insert_records(num_records):
    try:
        connection = mysql.connector.connect(**db_config)
        cursor = connection.cursor()

        for i in range(num_records):
            # Generate random data for demonstration
            name = f'Name{i}'
            age = random.randint(18, 80)
            city = f'City{i % 100}'  # Only 100 cities for simplicity

            # Insert record into the table
            cursor.execute("INSERT INTO my_table (name, age, city) VALUES (%s, %s, %s)", (name, age, city))

        connection.commit()
        print(f"{num_records} records inserted successfully")
    except mysql.connector.Error as error:
        print("Error inserting records:", error)
    finally:
        if connection.is_connected():
            cursor.close()
            connection.close()

# Number of records to insert
num_records = 1000000  # Inserting 1 million records

# Create table if not exists
create_table_query = '''
CREATE TABLE IF NOT EXISTS my_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT,
    city VARCHAR(255)
)
'''

try:
    connection = mysql.connector.connect(**db_config)
    cursor = connection.cursor()
    cursor.execute(create_table_query)
    print("Table 'my_table' created successfully")
except mysql.connector.Error as error:
    print("Error creating table:", error)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()

# Insert records
insert_records(num_records)

이 코드를 실행하기 전에
를 정의했는지 확인하세요. '호스트': '127.0.0.1',
'포트': 3309,
'사용자': '내_사용자',
'비밀번호': '내_비밀번호',
'데이터베이스': '내_데이터베이스'
실제 MySQL 자격 증명과 데이터베이스 이름을 사용하세요.

또한 mysql-connector-python 패키지가 설치되어 있는지 확인하세요.

pip 설치 mysql-connector-python

dmi@dmi-laptop:~/my_mysql_postgres$ pip install mysql-connector-python
Defaulting to user installation because normal site-packages is not writeable
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.4.0-cp310-cp310-manylinux_2_17_x86_64.whl (19.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.4/19.4 MB 3.8 MB/s eta 0:00:00
Installing collected packages: mysql-connector-python
Successfully installed mysql-connector-python-8.4.0

예:

mysql> select count(1) from my_table;
 ---------- 
| count(1) |
 ---------- 
|  1000000 |
 ---------- 
1 row in set (0.05 sec)

mysql> 

mysql> select * from my_table limit 10;
 ---- ------- ------ ------- 
| id | name  | age  | city  |
 ---- ------- ------ ------- 
|  1 | Name0 |   38 | City0 |
|  2 | Name1 |   49 | City1 |
|  3 | Name2 |   27 | City2 |
|  4 | Name3 |   64 | City3 |
|  5 | Name4 |   19 | City4 |
|  6 | Name5 |   63 | City5 |
|  7 | Name6 |   36 | City6 |
|  8 | Name7 |   42 | City7 |
|  9 | Name8 |   51 | City8 |
| 10 | Name9 |   54 | City9 |
 ---- ------- ------ ------- 
10 rows in set (0.01 sec)

mysql> 

[email protected]

릴리스 선언문 이 글은 https://dev.to/dm8ry/python-code-that-inserts-a-large-number-of-records-into-a-mysql-table-124c?1 에서 재현됩니다. 침해가 있는 경우 , [email protected]로 문의해주세요.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3