Mysql
為什麼我的語句會導致語法錯誤?
我試圖在 MySQL 5.5 和 5.7.1 中執行這個 SQL 語句,但總是出錯。
DELIMITER // CREATE PROCEDURE one_off_update_user_info_view_type() BEGIN DECLARE @batchsize BIGINT DEFAULT 1; END //
您可以在本地 MySQL 5.5+ 中檢查該腳本,因為它不包含任何業務邏輯或公司內部數據庫。誰能告訴我為什麼會出現錯誤以及如何解決?
您使用
DECLARE
複合語句語法來聲明局部變數、游標、條件或處理程序。但是,由於前綴的存在,您的變數@batchsize
是會話全域變數@
,嘗試重新聲明全域變數是錯誤的。將變數的名稱從 更改
@batchsize
為batchsize
,然後閱讀 MySQL 變數。
您不能使用
@variable_name
來聲明變數。@
只能用於會話變數。將您的程式碼更改為此,它將起作用
分隔符 // 創建過程 one_off_update_user_info_view_type() 開始 DECLARE batchsize BIGINT DEFAULT 1; 結尾 //