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.klaver@aklaver.com