반응형
매개 변수를 사용하여 MariaDB 저장 프로시저 삽입
호스팅 회사가 MariaDB를 사용하는지 모르고 MySQL에서 다른 호스팅 회사로 회사 데이터베이스를 마이그레이션했는데, IN 매개 변수를 사용하여 저장 프로시저를 생성하려고 하면 MariaDB가 매개 변수를 열 n으로 인식합니다.아래의 저장 프로시저 코드를 참조해 주세요.
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'
열 이름은 'drawalcode_p'가 아닌 DrawalCode입니다. 'drawalcode_p'는 저장 프로시저에 전달된 매개 변수이지만 서버는 이를 필드 이름으로 인식하고 있습니다.호스팅 회사와 통화해보니 MySQL이 아닌 MariaDB라고 합니다.MySQL 서버에서도 같은 코드가 동작했습니다.
도움이 될 만한 도움은 주시면 감사하겠습니다.
기본이 아닌 구분 기호를 설정하고 절차 본문을 다음과 같이 줄바꿈하는 것을 잊었습니다.BEGIN
/END
여러 개의 문이 있기 때문에 필요합니다.
당신의 경우엔 몸으로 만든 시술이START TRANSACTION
나머지는 일반적인 문장으로 간주됩니다.대신, 시도해봐
DELIMITER $$
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))
BEGIN
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;
END $$
DELIMITER ;
언급URL : https://stackoverflow.com/questions/43474546/mariadb-insert-stored-procedure-with-parameter
반응형
'programing' 카테고리의 다른 글
배열 목록을 알파벳 순으로 정렬(대문자와 소문자를 구분하지 않음) (0) | 2022.09.25 |
---|---|
JavaScript:파일 업로드 (0) | 2022.09.25 |
휴지 상태에 인수 생성자가 필요하지 않은 이유는 무엇입니까? (0) | 2022.09.25 |
파일 크기를 MB, GB 등으로 포맷 (0) | 2022.09.25 |
jQuery를 사용하여 이미지 원본 변경 (0) | 2022.09.25 |