- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 
CREATE FUNCTION "insert_payment" (integer) RETURNS integer AS '                                                                                                                     
DECLARE                                                                                                                                                                             
        l_payment       integer;                                                                                                                                                    
BEGIN                                                                                                                                                                               
        INSERT INTO payments (client,type_,pdate,number_)                                                                                                                           
        VALUES ($1,4,current_date,nextval_(''payments_number_1_seq''));                                                                                                             
                                                                                                                                                                                    
        SELECT INTO l_payment last_value FROM payments_id_seq;                                                                                                                      
        RETURN l_payment;                                                                                                                                                           
END;' LANGUAGE 'plpgsql';
                                
 Follow us!
Вот для этого в Firebird, например, есть волшебная секция RETURNING в INSERT и UPDATE запросах:
запрос вернет ID вставленной записи
Другой православный способ - использовать генераторы (SEQUENCE) вместо автоинкрементных полей.
Отстутствие этих двух фич я не могу простить MySQLю. Кстати, проясните раз и навсегда как правильно решать эту задачу в MySQL? В своем проекте делал в PHP через mysqli_insert_id, но ИМХО это костыль какой-то.