Триггер plpython3u сравнивает два значения в новой записи и, если они совпадают, делает что-то - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть триггер plpython3u, который может копировать структуру папок в новое место в новой записи вставки в таблице postgresql.Это отлично работает.Теперь я хотел бы обновить триггер оператором if, сравнивая две записи ... Так что в основном триггер проверяет, равны ли две записи (timestamtz) друг другу.Если нет, выведите ok, если да, скопируйте структуру папок на место.Вот мой код:

CREATE or replace FUNCTION "public"."_copy_folderstructure"()
  RETURNS "pg_catalog"."trigger" AS $BODY$
  import shutil
  import os
  try:
   if (TD["new"]["created_at"] != TD["new"]["updated_at"]): print("ok")
     elif (TD["new"]["created_at"] = TD["new"]["updated_at"]): shutil.copytree("d:/Data/Shared/_templates/folderstructure","d:/Data/Shared/" + TD["new"]["ff3ec"] + "_" + TD["new"]["fcee9"])
  except:
   print("fail")
$BODY$
  LANGUAGE 'plpython3u' VOLATILE COST 100
;

К сожалению, я не могу сгенерировать триггер, потому что он генерирует ошибку TabError: inconsistent use of tabs and spaces in indentation (<string>, line 7) Неважно, нажимаю ли я ввод или нет, или вместо пробела использую ввод.Я не эксперт по Python, поэтому я не уверен, что синтаксис в любом случае хорош.Может кто-нибудь иметь представление, как этот триггер должен работать?

...