2012-10-16 76 views
0

我有一個存儲過程在MySQLMYSQL最後插入的行的ID沒有自動增量列

DELIMITER $$ 
CREATE PROCEDURE REG_LOCATE(IN MDN VARCHAR(50), IN CALLID VARCHAR(50)) 
BEGIN 
DECLARE cmd CHAR(255); 
DECLARE result int(10); 
DECLARE transactionId VARCHAR(255); 
INSERT INTO transactions(id, device_number, call_id, creation_time, method_name) VALUES(UUID(), MDN, CALLID, now(), 'MDN_REG_LOCATE'); 
SELECT id FROM transactions ORDER BY creation_time desc LIMIT 1 INTO transactionId; 
END; 
$$ 
DELIMITER ; 

我已經插在交易表,其ID是由UUID()的MySQL,現在我怎樣才能插入一個一行從交易表相同的過程中最後插入的ID。我已經使用

SELECT id FROM transactions ORDER BY creation_time desc LIMIT 1 INTO transactionId; 

但它不給我最後插入的ID。請幫我在這。 由於事先

回答

0

首先分配給UUID()調用一個變量的結果,然後使用該變量的值在INSERT聲明:

DELIMITER $$ 

CREATE PROCEDURE REG_LOCATE(IN MDN VARCHAR(50), IN CALLID VARCHAR(50)) 
BEGIN 
    DECLARE cmd CHAR(255); 
    DECLARE result int(10); 
    DECLARE transactionId VARCHAR(255); 

    SET transactionId := UUID(); 
    INSERT INTO transactions 
    (id, device_number, call_id, creation_time, method_name) 
    VALUES 
    (transactionId, MDN, CALLID, now(), 'MDN_REG_LOCATE'); 
END$$ 

DELIMITER ; 
相關問題