在mysql过程中进行插入时我有一个问题。
我用了一个局部变量 IDnew
从原始表中获取(max(id)+1)。
然后我想插回一些具体的信息。
但是,我失败了,因为插入后新的id不是我想要的。这里错过了什么?
DELIMITER $$
create procedure proc_InsertStar(IN sname varchar(100), IN syear INT(11))
BEGIN
declare IDnew varchar(255);
select IDnew; #line A
select concat("nm",lpad(cast(max(replace(id,"nm","")+1)as char),7,'0')) into IDnew from stars;
select IDnew; #line B
insert into moviedb.stars(id,name,birthYear) values(IDnew,sname, syear);
END
$$
DELIMITER ;
call proc_InsertStar("jaden smith", 1998);
select * from stars where name="jaden smith"; #line C
结果如下:
line A:
[enter image description here][1]
line B:
[enter image description here][2]
line C:
[enter image description here][3]
但是,最大id应为“nm9423081”,即“nm9423080”,在最低位加一。
[1]: https://i.stack.imgur.com/mg7HF.png
[2]: https://i.stack.imgur.com/BaHiZ.png
[3]: https://i.stack.imgur.com/qzotC.png
暂无答案!
目前还没有任何答案,快来回答吧!