我沒有什麼SQL經驗,所以這個問題可能有點顯而易見,但是從我讀過的內容來看,我似乎正確使用了BEGIN/END。我使用BEGIN/END爲了讓多個語句連續執行。我們的目標是從表格中刪除以前的「優勝者」,然後用新的「勝利者」計算並填充表格。該表應該只有一個記錄;獲勝者,冠軍。無論結構如何,我都無法處理任何超過第一個有效聲明的內容。帶有多個語句的SQL過程
create procedure contest.getWinner()
begin
begin
delete from contest.winner
where stars > 0;
end
begin
insert into contest.winner(img, stars, cur_DT)
(SELECT A.img, A.stars, now()
FROM
(
SELECT
I.img,
SUM(I.stars) as stars,
MIN(I.cur_DT) as TieBreaker
FROM
contest.votes as I
GROUP BY I.img
)as A
ORDER BY
A.stars DESC,
A.TieBreaker
limit 1
);
end
end
哪個數據庫引擎?你有什麼錯誤嗎? – Nivas
你有沒有嘗試刪除內部的開始/結束? –
我在win7上使用MySql,並在MySql Workbench中編輯。我已經嘗試了開始/結束的每一個排列,包括標籤,'開始嘗試',嵌套開始/結束,單個外部大多數開始/結束等... – nullsteph