2013-08-01 32 views
0

我只是想知道是否可以使用我的變量插入查詢? 我將在我的表中插入一條新記錄。我桌子上的主鍵是數字值(int)。爲了給一個獨特的價值,我需要從我的表中獲取最新的密鑰(MAX (menuId)),然後通過1 這裏增加該值是我的代碼:MySQL插入查詢中的用戶定義變量

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

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

用MySQL變量只允許在存儲過程? 在此先感謝。

+0

你不能讓你的主鍵'自動increment'?你甚至不需要插入id。 – bansi

+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; 
+0

我試過這段代碼:),它的工作。但是有可能在普通查詢中聲明一個變量(不是在存儲過程中)? –

+0

@WillyLazuardi嘗試這個edit2,但我不知道,所以如果它不工作告訴我要刪除它。 –

+0

好吧,這就是工作..非常感謝您的答案.. :) –