Random User Data Generation and Insertion

  • Share this:

Code introduction


The code defines a function create_random_user that first randomly selects a column name, then generates random user data, and inserts these data into the database.


Technology Stack : psycopg2

Code Type : Database operation

Code Difficulty : Intermediate


                
                    
import psycopg2
import random

def fetch_random_column_name(cursor):
    cursor.execute("SELECT column_name FROM information_schema.columns WHERE table_name='users'")
    columns = cursor.fetchall()
    return random.choice(columns[0])[0] if columns else None

def generate_random_user_data(column_name):
    if column_name is None:
        return None
    data = {
        'id': random.randint(1, 100),
        'name': f'User{random.randint(1, 1000)}',
        'email': f'user{random.randint(1, 1000)}@example.com',
        column_name: f'Value{random.randint(1, 100)}'
    }
    return data

def insert_random_user_data(conn, data):
    cursor = conn.cursor()
    columns = ', '.join(data.keys())
    placeholders = ', '.join(['%s'] * len(data))
    query = f"INSERT INTO users ({columns}) VALUES ({placeholders})"
    cursor.execute(query, list(data.values()))
    conn.commit()
    cursor.close()

def create_random_user(conn):
    column_name = fetch_random_column_name(cursor=conn.cursor())
    data = generate_random_user_data(column_name=column_name)
    if data:
        insert_random_user_data(conn=conn, data=data)                
              
Tags: