source

MySQL 로컬 변수

ittop 2023. 10. 24. 21:35
반응형

MySQL 로컬 변수

쿼리에 대한 MySQL 변수를 정의하고 초기화하려고 합니다.

다음 사항이 있습니다.

declare @countTotal int;
SET @countTotal = select COUNT(*)
 from nGrams;

Netbeans에서 MySQL을 사용하고 있는데 오류가 있다고 합니다.내 오류는 무엇입니까?

이거 어떻게 고쳐요?

MySQL에는 두 가지 다른 유형의 변수가 있습니다.

  • 로컬 변수(앞줄에 붙지 않는 변수)@)를 강력하게 입력하고 저장된 프로그램 블록의 범위를 지정합니다.구문 아래에 문서화된 바와 같이 다음 사항에 유의하십시오.

    DECLARE 복합문 내부에서만 허용되며 다른 문보다 먼저 시작해야 합니다.

  • 사용자 변수(접두사는 다음과 같습니다)@)를 느슨하게 입력하고 세션 범위를 지정합니다.이들은 선언할 필요도 없고 선언할 수도 없다는 점에 유의하십시오. 단지 이들을 직접 사용할 뿐입니다.

따라서 저장된 프로그램을 정의하고 실제로 "로컬 변수"를 원한다면 질문의 문구에 따라 다음을 삭제해야 합니다.@성품을 갖추고 당신의DECLARE문은 프로그램 블록의 시작 부분에 있습니다.그렇지 않으면 "user variable"을 사용하려면DECLARE진술.

또한 쿼리를 하위 쿼리로 실행하려면 괄호 안에 쿼리를 둘러싸야 합니다.

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

또는 다음을 사용할 수 있습니다.

SELECT COUNT(*) INTO @countTotal FROM nGrams;

한번 해보세요:-

 select @countTotal := COUNT(*) from nGrams;

함수 예:

DROP FUNCTION IF EXISTS test;

DELIMITER $$
CREATE FUNCTION test(in_number INT) RETURNS INT
    BEGIN
        DECLARE countTotal INT;
        SET countTotal = SELECT COUNT(*) FROM nGrams;
    RETURN countTotal + in_number;
END $$
DELIMITER ;

DELECORE 구문에 따르면declare시작... 끝 블록 안에 있어야 합니다

언급URL : https://stackoverflow.com/questions/13670659/mysql-local-variables

반응형