1
我是一般的MySQL和數據庫的新手。我正在嘗試創建一個MySQL存儲過程,但一直得到一個模糊的語法錯誤: 「你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'sps; EXECUTE附近使用正確的語法stmt USING nn,ee,ll,cc,uu; COMMIT END'在第11行「MySQL存儲過程中的EXECUTE給出語法錯誤
如果我刪除行」PREPARE stmt ...「,則創建存儲過程。當我放回線路時,再次出現錯誤。
這是什麼,我做錯了?
DELIMITER //
CREATE PROCEDURE `account_create` (nn VARCHAR(25),
ee BIGINT,
ll BIGINT,
cc VARCHAR(100),
uu VARCHAR(25))
BEGIN
DECLARE newId BIGINT;
DECLARE sps VARCHAR(50);
START TRANSACTION;
set sps = 'INSERT INTO account SET name=?, entity=?, ledger=?, tblname=tmpXXX, creation_date=CURDATE(), comment=?, uname=?';
PREPARE stmt FROM sps;
COMMIT;
END//
謝謝,我這樣做,它的工作。 MySQL文檔從未澄清'varName'和'@varName'之間的區別,我從之前的一個stackoverflow問題看到,'@'變量具有會話範圍,而非'@'變量具有過程範圍。如果我的理解是正確的,那麼上面的非'@'版本也不行? – Lelanthran 2012-07-19 06:41:06
它不應該工作,很簡單,因爲您需要使用會話變量而不是局部變量。 – 2012-07-19 06:54:53