Оператор UPDATE
не может работать, потому что таблица tpl_league_tbl
не имеет столбца new
. Вы должны опустить new.
.
Но вы не должны делать это в AFTER
триггере, вы должны делать это в BEFORE
триггере следующим образом:
NEW.tpl_league_code := leagueCode;
Затем, когда вы RETURN NEW;
, новая строка была изменена до вставки , что вам и нужно. Вставлять строку громоздко и дорого только для того, чтобы обновить ее через доли секунды.
Еще одна вещь: вы должны не запустить
SELECT count(*) FROM tpl_league_tbl;
внутри функции триггера, потому что это очень дорогая операция, требующая последовательного сканирования таблицы.
Если вам нужен случайный уникальный суффикс для leagueCode
, я рекомендую вам использовать последовательность и получить число с nextval
. Это будет намного дешевле.