On 05/29/2018 05:10 PM, tango ward wrote:

Hi,

I am working on inserting multiple values for a table. I need to insert 3 values of data for each age of the students from the same village. It will be 3 different ages of student per village.

My sample code:


curr_pgsql.execute('''
                    INSERT INTO student (created, modified, name,
                                                     address, age, level
                                                     )
                    VALUES (current_timezone, current_timezone,
                            'Scott', 'Malayan Village', 21, 2),
                           (current_timezone, current_timezone,
                            'Ben', 'Malayan Village', 21, 2),
                           (current_timezone, current_timezone,
                            'Scott', 'Malayan Village', 21, 2),

                           (current_timezone, current_timezone,
                            'Andrew', 'Malayan Village', 25, 2),
                           (current_timezone, current_timezone,
                            'Larry', 'Malayan Village', 25, 2),
                           (current_timezone, current_timezone,
                            'Adam', 'Malayan Village', 25, 2),

                           (current_timezone, current_timezone,
                            'Elisse', 'Malayan Village', 27, 2),
                           (current_timezone, current_timezone,
                            'Xena', 'Malayan Village', 27, 2),
                           (current_timezone, current_timezone,
                            'Karen', 'Malayan Village', 27, 2)

I will repeat the same process for 13 villages so that will be 117 of values. I would like to know if there's a way to reduce the script? This has to be done strictly via script.

Not sure where you are pulling the data from and how it is ordered, but an outline:

data_input (Assuming sorted by village and then age)

for village in data_input:
        for age in village:
                 curr_pgsql.execute('''
                 INSERT INTO student (created, modified, name,
                                      address, age, level)
                 VALUES(current_timezone, current_timezone,
                        %s, %s, %s, 2)''', (name, village, age))



Thanks,
J



--
Adrian Klaver
adrian.kla...@aklaver.com

Reply via email to