После каждого добавления записи система будет возвращать информацию о добавленной записи.
Это поможет узнать после добавления user_id добавленной записи, который генерируется системой.
INSERT INTO people (user_name, user_age) VALUES ('Maxim', 25)
RETURNING user_id AS u1, user_name AS u2, user_age AS u3;
INSERT INTO people (user_name, user_age) VALUES ('Nina', 30)
RETURNING user_id AS u1, user_name AS u2, user_age AS u3;
INSERT INTO people (user_name, user_age) VALUES ('George', 17)
RETURNING user_id AS u1, user_name AS u2, user_age AS u3;
Получаем содержимое таблицы.
SELECT * FROM people ORDER BY user_id ASC;
Заменим содержимое одной записи и вернём содержимое записи после изменения (обновлённое содержимое).
UPDATE people SET user_name = 'Anatoluy' WHERE user_id = 2
RETURNING user_id AS u1, user_name AS u2, user_age AS u3;
Снова выведем на экран содержимое таблицы.
SELECT * FROM people ORDER BY user_id ASC;
Возврат результата запроса с помощью хранимой процедуры
Создадим хранимую процедуру, которая будет возвращать содержимое таблицы people.
Записи при возврате будут отсортированы по убыванию поля user_id.
CREATE OR REPLACE FUNCTION get_all_people_desc ( )
RETURNS TABLE
(
user_id BIGINT,
user_name TEXT,
user_age INTEGER
)
AS $mytable$
BEGIN
RETURN QUERY
SELECT * FROM people ORDER BY user_id DESC;
END
$mytable$ LANGUAGE plpgsql;