【发布时间】:2016-05-31 13:26:01
【问题描述】:
我想根据最后插入的记录捕获列的主键值。下面是表结构:
create table test
(
id varchar(100) not null primary key,
rmain varchar(100),
rpart bigint
);
存储过程:
Delimiter $$
DROP PROCEDURE IF EXISTS insTest$$
Create Procedure insTest()
Begin
Set @rmain := (select trim(concat('DNB', DATE_FORMAT(CURRENT_DATE(), '%y'), DATE_FORMAT(CURRENT_DATE(), '%m'))));
IF ((trim(DATE_FORMAT(CURRENT_DATE(),'%m')) = 01) OR (trim(DATE_FORMAT(CURRENT_DATE(),'%m')) = 1)) THEN
Set @rpart = 1;
END IF;
IF ((trim(DATE_FORMAT(CURRENT_DATE(),'%m')) != 01) OR (trim(DATE_FORMAT(CURRENT_DATE(),'%m')) != 1)) THEN
Set @rpart := (select coalesce(max(rpart),0) from test) + 1;
END IF;
insert into Test (ID, rmain, rpart) values (concat(@rmain,@rpart),@rmain,@rpart);
End$$
DELIMITER ;
请指教。我检查了last_insert_ID(),但它仅适用于具有auto_increment 设置的主键列。提前谢谢...
【问题讨论】:
-
正确标记您的问题。
mysql和tsql不一样。
标签: mysql