Когда я читаю свой CSV-файл во временную таблицу и затем пытаюсь записать эти данные в мою таблицу, записывается только последняя строка, а все остальные пропускаются. Как я могу записать все данные (могу ли я поставить их в очередь?). Я не могу понять, как это сделать.
Извините за большой код, у меня много проверок
CREATE OR REPLACE FUNCTION test2(teach integer)
RETURNS void
LANGUAGE 'plpgsql'
AS $BODY$
BEGIN
DROP TABLE IF EXISTS temp_table;
CREATE TEMP TABLE IF NOT EXISTS temp_table (
num varchar,
let varchar,
dis varchar,
last_n varchar,
oc varchar,
dt date
) on commit drop;
COPY temp_table(num,let,dis,last_n,oc,dt)
FROM 'D:\bd2.csv' DELIMITER ',' CSV HEADER encoding 'windows-1251';
insert into sch.ocenka (id_pupil,ocenk,id_discteacher,date)
select
sch.pupil.id_pupil,temp_table.oc,sch.discipline_teacher.id_discteacher,temp_table.dt
from sch.discipline_teacher,sch.discipline,sch.teacher,sch.class,sch.pupil,temp_table
where sch.discipline_teacher.id_class = sch.class.id_class and sch.pupil.id_class =
sch.class.id_class and
sch.discipline_teacher.id_discipline = sch.discipline.id_discipline and
sch.discipline_teacher.id_teacher = sch.teacher.id_teacher and
EXISTS (select * from sch.discipline_teacher
where sch.discipline_teacher.id_class = sch.class.id_class and
sch.discipline_teacher.id_discipline = sch.discipline.id_discipline and
sch.discipline_teacher.id_teacher = sch.teacher.id_teacher and sch.discipline.title
=temp_table.dis and sch.teacher.phone=teach and sch.class.title =temp_table.num and
sch.class.kurs =temp_table.let)
and sch.discipline.title =temp_table.dis and sch.teacher.phone=teach and
sch.class.title =temp_table.num and sch.class.kurs =temp_table.let and
sch.pupil.last_name =temp_table.last_n;
DROP TABLE IF EXISTS temp_table;
END;
$BODY$;