programing

겉보기에는 올바른 절차를 만드는 중이지만 SQL 구문 오류가 발생합니다.

lastcode 2023. 6. 11. 10:43
반응형

겉보기에는 올바른 절차를 만드는 중이지만 SQL 구문 오류가 발생합니다.

다음 코드:

USE `securityMisconfigStealToken`;
-- DELIMITER $$
CREATE PROCEDURE `securityMisconfigStealToken`.`getToken`(IN theUserId VARCHAR(64))
BEGIN
DECLARE tokenExists INT;
COMMIT;
SELECT count(token) FROM `securityMisconfigStealToken`.`tokens` WHERE userId = theUserId INTO tokenExists;
IF (tokenExists < 1) THEN
        INSERT INTO tokens (userId, token) VALUES (theUserId, SHA2(CONCAT(RAND(), now()), 256));
        COMMIT;
END IF;
SELECT token FROM tokens WHERE userId = theUserId;
END
;
-- $$

예외를 슬로우합니다.

996행의 오류 1064(42000): SQL 구문에 오류가 있습니다. 3행의 "" 근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서를 확인하십시오.

저는 현재 mariaDB 버전 10.5.12를 사용하고 있습니다.

코드의 첫 번째 줄은 994 줄에서 시작하여 1008 줄에서 끝나지만 오류는 3 줄의 구문을 참조합니다.나는 이 코드가 왜 오류를 발생시키는지 전혀 찾을 수 없는 것 같습니다.

MariaDB 주석 구문에서:

마리아에서 지원되는 댓글 스타일은 3가지입니다.DB:

  1. ...

  2. '--'부터 줄의 끝까지.두 대시 뒤의 공간이 필요합니다(MySQL에서처럼).

  3. ...

이것은 구분 기호가 주석이기 때문에 허용되지 않는다는 것을 의미합니다.-- $$마지막에).

언급URL : https://stackoverflow.com/questions/73487446/i-am-creating-a-procedure-seemingly-correctly-however-i-am-receiving-a-sql-synt

반응형