세션 변수 설정 시 MariaDB 유형 오류
Maria DB(10.1.9)에서 다음 쿼리가 작동하는 이유는 무엇입니까?
SET SESSION wait_timeout = 28000;
SET SESSION wait_timeout = @@wait_timeout;
SELECT GREATEST(28000, @@wait_timeout);
... 그거 말고요?
SET SESSION wait_timeout = GREATEST(28000, @@wait_timeout)
다음과 같은 유형의 오류를 입력합니다.
#1232 - Incorrect argument type to variable 'wait_timeout`
이 오류는 대체함으로써 해결할 수 있지만,@wait_timeout
와 함께CAST(@@wait_timeout AS INT)
아니면CONVERT(@@wait_timeout, SIGNED)
( 후자는 MySQL에서도 작동함) 두 번째와 세 번째 쿼리가 작동하는 이유가 궁금합니다.
이게 무슨 일입니까?쿼리 3이 작동하기 때문에 GREATEST 연산이 될 수 없으며 쿼리 2에서 (암시적) 변환이 실패하기 때문에 다른 변수 유형이 될 수 없습니다(어차피 동일한 유형이어야 함).다른 시스템 변수에서도 동일한 현상이 발생합니다.
그런데 말입니다.동일한 쿼리가 MySQL에서 작동하므로(MySQL 버전 5.6의 SQL fiddle에서 시도) MariaDB와 MySQL 간에 불일치가 발생합니다.
어떤 도움이든 감사히 받겠습니다.
일부 사람들이 정확히 추측했듯이, 그것은 최근에 도입된 버그(현재 확인된)입니다.
자세한 내용은 mariadb 문제 추적기(https://jira.mariadb.org/browse/MDEV-9516 를 참조하십시오.
업데이트(2016-03-21)
버그 트래커에 관해서는 10.1.13에서 문제가 해결된 것 같습니다.
언급URL : https://stackoverflow.com/questions/35187378/mariadb-type-error-when-setting-session-variable
'programing' 카테고리의 다른 글
Powershell을 사용하여 관리자로 실행 바로 가기를 만드는 방법 (0) | 2023.09.10 |
---|---|
문자열에서 단일 문자를 인덱스별로 제거하는 방법 (0) | 2023.09.10 |
MariaDB stored proc - INSERT 문에서 '선택 누락' 오류를 수신 (0) | 2023.09.05 |
동적 SQL이란 무엇입니까? (0) | 2023.09.05 |
node.js에서 C++ 라이브러리를 사용하려면 어떻게 해야 합니까? (0) | 2023.09.05 |