programing

세션 변수 설정 시 MariaDB 유형 오류

cafebook 2023. 9. 10. 12:37
반응형

세션 변수 설정 시 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

반응형