0
我有一個數據庫有3個表,我正在更新第一個行,然後嘗試更新基於第二個和第三個表在第一個領域的變化。MySQL的過程 - 分配計算更新中的列更新到另一個更新中使用的變量
這裏是我目前:
--Session--
User Hotspot DownloadCounter
bob 123 0
--UserDownload--
User Download
bob 100
--HotspotDownload--
Hotspot Download
123 300
目前,當我從熱點我用最新的業務計數器值的會話表的更新,但是我現在想更新UserDownload & HotspotDownload表與新的DownloadCounter的值 - 舊的DownloadCounter。
我想這是很容易通過以下步驟:
DECLARE increment INT;
UPDATE Session
SET @increment = (200 - Counter),
Counter = 200
WHERE (User = 'bob' AND Circuit = '123');
UPDATE UserDownload
SET Total = (Total + @increment)
WHERE (User = 'bob');
UPDATE HotspotDownload
SET Total = (Total + @increment)
WHERE (Circuit = '123');
的想法是我更新會話表,計數器變化值賦值給一個變量,然後在下載表格的更新中使用。但'@'在過程中導致語法錯誤,沒有'@'它認爲增量是一列失敗。
如果在總表中沒有用戶/熱點的條目,我仍然需要更新會話表。
我試着用單個更新和左連接做這件事,但導致Sessions表列被首先更新,因此下載表不會被更新。
是否可以將列計算的結果分配給更新中的變量,然後在過程的另一個更新中使用該更新?
謝謝。