2016-04-11 78 views
1

我想插入數據到一個表中,但是我想選擇在創建行時自動遞增的ID,然後我想將它設置到另一個表中的字段中。在一個查詢中使用INSERT,SELECT和UPDATE?

例如

  1. INSERT INTO playerdata(用戶名)VALUES( '%E')
  2. SELECT ID FROM playerdata p其中用戶名= '%E' LIMIT 1
  3. UPDATE masterdata SET SLOT = p。

我一直在試圖找出一種方法,現在仍然沒有運氣,所以如果有辦法做到這一點,請回復它,或者如果有更簡單的方法,那麼請解釋一下。感謝所有答覆。

+0

你使用任何編程語言或只是的sql? – WileTheCoyot

+0

我正在使用Pawn。 – Duck

回答

1

可以插入後使用觸發器這樣

create trigger update_masterdata after insert on playerdata 
for each row 
begin 
    UPDATE masterdata SET Slot = NEW.id; 
end/ 

sqlfiddle

+0

但是我需要在插入行後使用SELECT來收集ID,如何使用觸發器來做到這一點? – Duck

+0

哦,你需要的ID不是更新masterdata ..然後我猜你必須運行一個查詢搜索該用戶名。 –

+0

不,我的意思是......我需要將數據插入到playerdata中,然後我需要使用插入數據時創建的新ID來更新masterdata,但我並不假定「NEW.」上的「NEW」已經存在做這個?這是我的錯誤 – Duck

1

看來你只能插入1行。

您可以嘗試LAST_INSERT_ID功能

+0

我可以使用this- ..但是我使用BlueG的MySQL插件爲SA-MP編碼,它不包含這個函數,儘管如此,謝謝你的幫助。 – Duck

相關問題