MYSQL最后插入的行';没有自动递增列的s id
我在Mysql中有一个存储过程MYSQL最后插入的行';没有自动递增列的s id,mysql,Mysql,我在Mysql中有一个存储过程 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, creatio
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 ;
我在transactions表中插入了一行,其id由mysql的UUID()插入,现在如何在同一过程中从transactions表中获取最后一个插入的id
SELECT id FROM transactions ORDER BY creation_time desc LIMIT 1 INTO transactionId;
但它并没有给我最后一个插入的id。请帮我解决这个问题。
提前感谢首先将调用
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 ;