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服务器上工作。
我会很感激这里提供的任何有用的帮助。