MySQL插入查询中的用户定义变量

时间:2013-08-01 18:02:00

标签: mysql sql variables insert

我只是想知道是否可以将我的变量用于插入查询? 我要在我的桌子上插入一条新记录。我表上的主键是数值(int)。为了给出一个唯一值,我需要从表中获取最新的键(MAX (menuId)),然后将该值递增1。 这是我的代码:

SELECT @newId := COALESCE( MAX( menuId ) , 0 ) +1
FROM msMenu;

INSERT INTO msMenu( @newId,  'My Menu', 1) ;

MySQL变量是否只允许存储过程? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个

    INSERT INTO msMenu (column1, column2 , column3)
    SELECT  COALESCE( MAX( menuId ) , 0 ) +1 ,'My Menu', '1'  
    FROM msMenu;

EDIT2:

 SET @newId = (select COALESCE( MAX( menuId ) , 0 ) +1 from msMenu)
 INSERT INTO msMenu (column1, column2 , column3)
 SELECT  @newId ,'My Menu', '1'  
 FROM msMenu;

答案 1 :(得分:0)

您可以使用此sql;

SELECT @newId := COALESCE( MAX( menuId ) , 0 ) +1 FROM msMenu;
INSERT INTO msMenu values ( (select @newId), 'My Menu', 1) ;