MySQL/MariaDB 사용자 정의 변수가 grafana에서 작동하도록 하려면 어떻게 해야 합니까?
MariaDB 5.5(당사의 별표 cdr 데이터베이스)를 사용하고 데이터베이스의 기존 데이터에서 날짜별로 시계열을 구축하려고 하지만 데이터가 없는 날짜를 설명하기 위해 모든 날짜의 열에 가입하려고 합니다.MySQL Workbench에서는 지난 180일 동안의 모든 날짜 목록을 가져오기 위해 다음 쿼리(간소화)가 작동하지만 grafana에서는 구문 오류가 발생합니다.
SET @i = -1;
SELECT DATE(DATE_ADD(DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY), INTERVAL @i:=@i+1 DAY)) AS date
FROM queuestats
HAVING
@i < DATEDIFF(CURRENT_DATE(), DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY))
;
제가 받는 오류는 다음과 같습니다.
오류 1064:SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 매뉴얼에서 3행의 'SELECT DATE(DATE_ADD(DATE_ADD(CURENT_DATE()), INTERVAL -180 DAY(인터벌 @i:=@)' 근처에서 사용할 올바른 구문을 확인하십시오.
쿼리에서 첫 번째 줄만 제거하면 오류가 발생하지 않고 데이터도 반환되지 않아 'SET' 키워드를 문제 삼는 것 같습니다.이 MariaDB에 대해 이 구문을 테스트했는데 별도의 MySQL 데이터베이스가 있고 같은 일이 발생합니다.좀 더 간단히 설명하자면, 다음과 같은 쿼리를 사용해도 같은 오류가 발생합니다.
SET @i = -1;
SELECT CURRENT_DATE() AS time;
왜 그라파나가 SET 키워드를 좋아하지 않는지 아는 사람?아니면 변수를 사용하지 않고 두 날짜 사이의 날짜 목록을 가져오는 방법은 무엇입니까?
미리 감사드립니다.
보안상의 이유(주로 SQL 주입)로 인해 MariaDB(또한 MySQL)는 이 옵션을 명시적으로 사용하지 않는 한 세미콜론으로 구분된 여러 개의 문을 허용하지 않습니다(C-API에서는 다음을 설정하여 사용할 수 있음).CLIENT_MULTI_STATEMENTS
flag, PHP/mysqli에 별도의 API 호출이 있습니다.mysqli_multi_query()
) - 하지만 그라파나가 여러 진술을 지원할 수 있는 옵션이 있는지는 모르겠습니다.
언급URL : https://stackoverflow.com/questions/61147076/how-do-i-get-a-mysql-mariadb-user-defined-variable-working-in-grafana
'programing' 카테고리의 다른 글
VBA에서 감가상각되지 않는 방법으로 SQL Server에 액세스하는 방법은 무엇입니까? (0) | 2023.09.09 |
---|---|
판다에서 read_excel을 사용하여 공정 속도를 높이는 방법은? (0) | 2023.09.09 |
mariaDB 서비스가 windows에 의해 중지됨 (0) | 2023.09.09 |
PowerShell 2.0 및 "'Param'이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다." (0) | 2023.09.09 |
전체 터미널을 지우는 방법 (PowerShell) (0) | 2023.09.09 |