В моей базе данных есть две таблицы с геометрическими столбцами.
Таблица поля содержит полигоны с общей информацией, относящейся к различным полям, а во второй таблице хранятся полигоны, попадающие в эти поля.
При вставке новой записи во вторую таблицу я хотел бы заполнить запись с помощью функции триггера, записанной в PL / PGSQL , информацией из полей на основев какое поле попадает новая запись / форма.
Я могу ввести field_id таким образом, который корректно просматривается из полей , но остальные поля остаютсязначения по умолчанию я ввожу.Я считаю, что моя ошибка лежит где-то во второй половине моего условного утверждения:
IF
(SELECT COUNT(*)
FROM
(SELECT id
FROM fields
WHERE st_intersects(NEW.geom, fields.geom)) AS foo) > 0
THEN
SELECT field_id,field_name,field_accessdate
INTO NEW.field_id,NEW.field_name,NEW.access_date
FROM (SELECT geom,field_id FROM fields) AS bar
WHERE st_intersects(NEW.geom, bar.geom);
RETURN NEW;
END IF;
field_id , field_name и field_accessdate должны совпадатьполя этого поля, однако в настоящее время совпадает только field_id , а два других поля содержат мои временные строки, предоставленные моим кодом импорта ("tmp", "1111-11-11").