如何获取最后插入的 id?
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertzonemsg`
(IN User_Id INT(10),
IN zid INT(10),
IN update_titles VARCHAR(50),
IN textarea1s TEXT,
IN filupload1s TEXT,
IN audio1s VARCHAR(100),
OUT out_id INT(10))
BEGIN
INSERT INTO zone_message_master
**(user_id,ZoneID,update_title,textarea1,filupload1,
audio1,LastUpdate)**
VALUE
**(User_Id,zid,update_titles,textarea1s,
filupload1s,audio1s,NOW());**
SELECT **id** as **out_id**
FROM **zone_message_master** LAST_INSERT_ID();
END$$
我需要将最后插入的 ID 作为 out_id
从表 zone_message_master
返回?
最佳答案
您需要使用 SET 语句。比如——
表:
CREATE TABLE table1(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
column1 VARCHAR(10),
column2 VARCHAR(10)
);
程序的主体:
BEGIN
INSERT INTO table1(column1, column2) VALUES ('value1', 'value2');
SET out_param = LAST_INSERT_ID();
END
注意,ID 字段未在 INSERT 语句中指定。该值将自动插入;当然,这个 ID 字段必须有 AUTO_INCREMENT 选项。
关于mysql - 在 MySQL 中获取最后插入的 ID 表单存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151861/