Объявите переменную, например, new_id
и затем вы можете сохранить сгенерированный идентификатор там:
INSERT INTO activity VALUES (DEFAULT, 'text', 'this is a test')
RETURNING id INTO new_id;
INSERT INTO activity_tree VALUES (DEFAULT, new_id, user_id);
Предполагается, что столбец, в котором генерируется значение, называется id
Кстати: не используйте «неквалифицированные» операторы вставки. Всегда указывайте столбцы в части INSERT. Это делает ваш код намного более стабильным:
INSERT INTO activity (id, some_column, other_column)
VALUES
(DEFAULT, 'text', 'this is a test')
И убедитесь, что вы не вызываете переменные так же, как столбцы. user_id
кажется, здесь возможен конфликт имен. Это скомпилируется с 8.x, но может привести к странным ошибкам. Я думаю, что это больше не будет компилироваться с 9.x