SQL 화학에서 MariaDB의 COLUMN_GET() 사용
MariaDB는 동적 열을 허용합니다. 동적 열은 사용자가 거의 없는 데이터 집합입니다.COLUMN_ADD()
그리고.COLUMN_GET()
기능들.
그러나 SQL 화학에서 동적 열을 사용하는 방법을 찾을 수 없습니다.시도한 결과:
from sqlalchemy.sql import func
...
query = session.query(
func.COLUMN_GET(DynamicInfo.dyn_col, 256)
).filter(
DynamicInfo.index_id == index
)
다음 SQL을 생성합니다.
SELECT COLUMN_GET(dyn_info.dyn_col, %(COLUMN_GET_2)s) AS `COLUMN_GET_1`
FROM dyn_info
WHERE dyn_info.index_id = %(index_1)s
문제는 이것이 다음에 대한 잘못된 구문이라는 것입니다.COLUMN_GET()
형식과 값을 포함해야 합니다.우리는 어떻게 해야 할지 모르겠어요COLUMN_GET(dyn_info.dyn_col, 256 AS INT)
SQL을 직접 작성하지 않아도 됩니다(이는 SQL 연금술을 사용할 경우 얻을 수 있는 대부분의 이점을 무효화합니다).
또한 열이 처리되는 방식에 대한 SQL 화학 소스 코드를 많이 살펴보았습니다. 이 형식을 복사하여 사용자 지정 비교기를 정의할 수 있기를 바랍니다.문제는 동적 열이 호출될 때 인덱스 매개 변수를 필요로 한다는 데 있으며, 이는 COLUMN_GET() 함수를 가장 쉽고 깨끗한 솔루션으로 적절하게 정의할 수 있습니다.
이 답변은 SQLAlchemy의 향후 개발로 인해 더 이상 사용할 수 없지만 SQLAlchemy 수단을 사용하여 나만의 절 요소를 구축하는 것이 유용하다는 것을 알게 되었습니다.아마도 sqlalchemy-full text-search 프로젝트에서 가장 좋은 예를 찾을 수 있을 것입니다.
하위 분류별ClauseElement
그리고 그것을 컴파일하면, 기능뿐만 아니라 SQL 화학 무기에 거의 모든 것을 추가할 수 있습니다.이 예제에서는 필요한 경우 클래스를 계측하는 방법도 보여 줍니다(연결된 예제에서는 특수 인덱스를 정의하는 방법).
또한 이렇게 하면 방언별 구문을 추가할 수 있습니다.
제 생각에, 당신은 당신의 사건에 필요한 모든 재료를 찾을 수 있을 것입니다.
물론 SQL 화학은 모든 SQL 텍스트를 전달할 수 있지만, 여기서 흥미로운 것은 Pythonic 구문이라고 생각합니다.
언급URL : https://stackoverflow.com/questions/46546243/using-mariadbs-column-get-in-sqlalchemy
'programing' 카테고리의 다른 글
ios 오류와 함께 코르도바 실행..명령에 대한 오류 코드 65: 인수를 사용한 xcodebuild: (0) | 2023.07.27 |
---|---|
UIPageViewController: 현재 표시되는 보기를 반환 (0) | 2023.07.27 |
Python은 멀티스레딩을 지원합니까?실행 시간을 단축할 수 있습니까? (0) | 2023.07.27 |
PowerShell Get-Date 내부 문자열 형식 지정 (0) | 2023.07.27 |
소켓 - 할당된 포트 및 주소를 확인하는 방법 (0) | 2023.07.27 |