1303 - Can't create a PROCEDURE from within another stored routine.
-- 在 Navicat 編輯器中直接貼入此代碼會報錯
CREATE PROCEDURE addData()
BEGIN
DECLARE v INT DEFAULT 0;
WHILE v < 4000000 DO
INSERT INTO TestMemory VALUES (v, 'ffffffffffffffffffffffffffasgeweeeeeeeeeeeeeg');
SET v = v + 1;
END WHILE;
END
Navicat 等 GUI 工具的存儲過程編輯器已自動包裹 CREATE PROCEDURE 外殼,用戶只需編寫 BEGIN ... END 內部邏輯。手寫外層導致「在存儲過程中創建存儲過程」語法錯誤。
-- 刪除第一行 CREATE PROCEDURE addData(),僅保留:
BEGIN
DECLARE v INT DEFAULT 0;
WHILE v < 4000000 DO
INSERT INTO TestMemory VALUES (v, 'ffffffffffffffffffffffffffasgeweeeeeeeeeeeeeg');
SET v = v + 1;
END WHILE;
END
✅ 命令行直接執行完整 SQL 無此問題,僅 GUI 工具編輯器需注意。