0
我將公司數據庫從MySQL遷移到另一個不知道託管公司使用MariaDB的託管公司,嘗試使用IN參數創建存儲過程後,MariaDB將參數視爲一個列。請參見下面的存儲過程的代碼與錯誤:MariaDB插入帶參數的存儲過程
CREATE PROCEDURE ADD_WITHDRAWAL_A(IN withdrawalcode_p VARCHAR(25), IN id_p VARCHAR(8), IN amount_p VARCHAR(12), IN datewithdrawn_p VARCHAR(35), IN approved_p VARCHAR(8))
START TRANSACTION;
INSERT INTO Withdrawals(WithdrawalCode, IDD, Amount, DateWithdrawn, Approved)
VALUES (withdrawalcode_p, id_p, amount_p, datewithdrawn_p, approved_p);
UPDATE account SET AccountBalance = AccountBalance - amount_p WHERE IDD = id_p LIMIT 1;
COMMIT;
***** AFTER RUNNING THE ABOVE CODE, MARIADB GAVE THIS ERROR :
Error
SQL query:
INSERT INTO WithdrawalRequest(WithdrawalCode, IDD, Amount, DateWithdrawn, Approved)
VALUES (withdrawalcode_p, id_p, amount_p, datewithdrawn_p, approved_p);
MySQL said: Documentation
#1054 - Unknown column 'withdrawalcode_p' in 'field list'
列名是WithdrawalCode而不是「withdrawalcode_p」,「withdrawalcode_p」是在傳遞給存儲過程的參數,但服務器看到它作爲一個字段名。我與託管公司交談過,他們說他們的數據庫是MariaDB,而不是MySQL。這個相同的代碼在MySQL服務器上工作。
我會很感激這裏提供的任何有用的幫助。