Как перезаписать «не нулевые» поля новой записи при вставке с использованием plpgsql? - PullRequest
0 голосов
/ 22 января 2019

В моей базе данных есть две таблицы с геометрическими столбцами.

Таблица поля содержит полигоны с общей информацией, относящейся к различным полям, а во второй таблице хранятся полигоны, попадающие в эти поля.

При вставке новой записи во вторую таблицу я хотел бы заполнить запись с помощью функции триггера, записанной в 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").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...