Sunday, 12 June 2016

Python: MySQLdb: cursor: fetchmany: Fetch many records

fetchmany ([ size=cursor.arraysize ])

Fetch number of rows as indicated by the size parameter. It returns an empty sequence, when no more rows are available.
#!/usr/bin/python

# Import MySQLdb module
import MySQLdb

# Drop and create table
def dropAndCreateTable(cursor,tableName):
    sql="DROP TABLE IF EXISTS "+tableName
    cursor.execute(sql)

    sql = """CREATE TABLE employee
            (
                id int,
                firstName varchar(30),
                lastName varchar(30),
                salary decimal,
                mailId varchar(30),
                PRIMARY KEY(id)
            )"""
    cursor.execute(sql)

# Connection related variables
host="localhost"
userName="root"
password="tiger"
database="sample"

# Open connection to a database
db = MySQLdb.connect(host, userName, password, database)

# Get cursor object
cursor = db.cursor()

# Prepare SQL query to create table
record1="""INSERT INTO employee values(1, "Krishna", "Ananda", 100000.00, "krishna@krishna.com")"""
record2="""INSERT INTO employee values(2, "Arjun", "Dhanunjay", 50000.00, "arjun@arjun.com")"""
record3="""INSERT INTO employee values(3, "Ptr", "Ptr", 25000.00, "ptr@ptr.com")"""
record4="""INSERT INTO employee values(4, "Nayan", "Nayanamma", 225000.00, "nayan@nayan.com")"""
record5="""INSERT INTO employee values(5, "Kiran", "Darsi", 95000.00, "kiran@kiran.com")"""

try:
    print("Dropping table employee")
    dropAndCreateTable(cursor,"employee")

    print("Inserting records")
    cursor.execute(record1)
    cursor.execute(record2)
    cursor.execute(record3)
    cursor.execute(record4)
    cursor.execute(record5)

    print("Commiting data to database")

    db.commit()

    cursor.execute("SELECT * FROM employee")

    print("Total rows affected by previous query ", cursor.rowcount)
    results = cursor.fetchmany(2)

    for row in results:
        id = row[0]
        firstName = row[1]
        lastName = row[2]
        salary = row[3]
        mailId = row[4]

        print(id, firstName, lastName, salary, mailId)
        row=cursor.fetchone()

    cursor.close()
except Exception as e:
    print("Error while processing query", e)
    db.rollback()

finally:
    # Close the connection to database
    db.close()


Output
Dropping table employee
Inserting records
Commiting data to database
('Total rows affected by previous query ', 5L)
(1L, 'Krishna', 'Ananda', Decimal('100000'), 'krishna@krishna.com')
(2L, 'Arjun', 'Dhanunjay', Decimal('50000'), 'arjun@arjun.com')



Previous                                                 Next                                                 Home

No comments:

Post a Comment