mysql过程插入使用变量

时间:2018-05-15 16:10:30

标签: mysql variables procedure

我在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

0 个答案:

没有答案