구문 오류 Maria에서 변수 선언 오류DB
다음 쿼리에 문제가 있습니다.
START TRANSACTION;
INSERT INTO posts
(
-- not relevant
)
VALUES
(
-- insert works as intended
);
COMMIT WORK AND CHAIN;
DECLARE @insertId INT; -- this is where i get the syntax error
SET @insertId = LAST_INSERT_ID();
UPDATE posts
SET guid = CONCAT('foo.bar?p=', @insertId)
WHERE id = @insertId;
-- continue to work with the variable
INSERT INTO postmeta(post_id, key, value)
VALUES
(@insertId, ..., ...),
(@insertId, ..., ...),
(@insertId, ..., ...),
(@insertId, ..., ...);
COMMIT WORK;
기본적으로 행을 삽입하며 삽입 직후 자동 증분 ID를 사용하여 업데이트해야 합니다(LAST_INSERT_ 함수에서 올바른 값을 얻을 수 있는지 확인합니다).ID). 그럼 자동 증분 ID를 사용해서 다른 테이블을 채워야 합니다.이 사용 사례에서는 값을 변수에 저장해야 한다고 생각했습니다.다음 오류 메시지가 표시되는 이유는 무엇입니까?"SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 매뉴얼에서 1행의 'DEClare @insertId INT; SET @insertId = LAST_INSERT_ID()'에 가까운 구문을 사용할 수 있는지 확인하십시오." 프로시저나 사용자 정의 함수를 만들지 않는 것이 문제입니까?
빠르게 검색해보니 MariaDB 웹사이트(https://mariadb.com/kb/en/user-defined-variables/) :
"사용자 정의 변수 유형을 선언할 수 없으므로 CAST() 또는 CONVERT()를 사용하는 방법밖에 없습니다."
그들의 사이트에는 신고하지 않고 변수를 만드는 예시들이 있기 때문에 해결책은 신고 문구를 삭제하는 것일 뿐이라고 생각합니다.
이게 효과가 있었으면 좋겠네요, 전 마리아를 잘 몰라요.DB!
언급URL : https://stackoverflow.com/questions/60522562/syntax-error-declaring-variables-in-mariadb
'source' 카테고리의 다른 글
오류: 작업 ':app:clean'에 대해 실행에 실패했습니다.파일을삭제할수없습니다. (0) | 2023.11.01 |
---|---|
Wordpress 정의('COOKIE_DOMAIN', 잘못된) 의미 (0) | 2023.11.01 |
Ajax - 성공 함수에서 반환된 배열을 사용하는 방법 (0) | 2023.11.01 |
Log4j XML 구성 파일을 사용하여 최대 절전 모드 로깅 구성? (0) | 2023.11.01 |
매개 변수가 있는 지시어에서 컨트롤러 함수 호출 (0) | 2023.11.01 |