Возврат вставленных insert данных

Бывают случаи, когда надо вернуть какие-то данные записей, вставленных командой insert.

Вот пример функции, которая сначала добавляет данные пользователя, а потом использует полученнй id для добавления в группы:

CREATE OR REPLACE FUNCTION add_user(CHARACTER VARYING, CHARACTER VARYING, CHARACTER VARYING, CHARACTER VARYING, 
                                CHARACTER VARYING, TIMESTAMP WITH TIME zone, BOOLEAN, INTEGER[])
  RETURNS void AS
$BODY$
DECLARE _uid INTEGER;
  gid INTEGER;
BEGIN
  WITH uid(id) AS (INSERT INTO auth_user 
                                (username,last_name,first_name,email,"password",last_login,is_active)
      VALUES ($1,$2,$3,$4,$5,$6,$7) returning id )
      SELECT id INTO _uid FROM uid;
  foreach gid IN array $8
  loop
    INSERT INTO auth_user_groups (user_id,group_id) VALUES (_uid,gid);
  END loop;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION add_user(CHARACTER VARYING, CHARACTER VARYING, CHARACTER VARYING, CHARACTER VARYING, 
                                CHARACTER VARYING, TIMESTAMP WITH TIME zone, BOOLEAN, INTEGER[])
  OWNER TO postgres;
 

Администрирование

Сегодня
Вчера
Эта неделя
Прошлая неделя
Этот месяц
Прошлый месяц
Вся статистика
95
3
189
26686
244
219
26905

IP: 18.191.181.228
Время: 2024-09-19 02:38:17
Счетчик joomla