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@xxxxxxxxxxx