DELIMITER 是 MySQL 客戶端(mysql、MySQL Workbench、Navicat 等)**工具指令**,並非 SQL 標準語句。若直接在 JDBC、Hibernate、程式碼中執行 DELIMITER $$,伺服器會報 1064 syntax error。
DELIMITER $$
CREATE PROCEDURE my_proc()
BEGIN
SELECT 1;
SELECT 2;
END$$
DELIMITER ;
Java/JDBC 中**不需要** DELIMITER,直接呼叫:
CallableStatement cs = conn.prepareCall("{CALL my_proc()}");
cs.execute();
DELIMITER 的完整腳本複製到程式碼字串中執行 → 錯誤。DELIMITER 是 SQL 一部分 → 否,它只是告訴客戶端「語句結束符暫時改為 $$」。DELIMITER 行。Statement.executeLargeUpdate() (JDBC 4.2+) 或分批 addBatch()/executeBatch()。