반응형
CTE를 사용한 MariaDB 10.3.14 DELETE 스테이트먼트에서 구문 오류가 발생함
MariaDB 10.3.14의 DELETE 스테이트먼트에서 CTE를 사용하려고 합니다(CTE가 파생 테이블보다 훨씬 사용하기 쉽기 때문에). 하지만 제대로 작동하지 않습니다.저는 이 문제를 해결하기 위해 꽤 많은 시간을 소비했지만 매번 "구문 오류"가 발생하고 그 이유를 잘 모르겠습니다.파생 테이블을 사용하도록 명령어를 다시 쓰면 동작합니다.
아주 간단한 예를 보여드리겠습니다.이것은 동작하지 않습니다(CTE 사용).
with ps as (
select * from product order by id asc limit 10
)
delete p from product p left join ps on p.id = ps.id where ps.id is null
이것은 문제없이 동작합니다(파생표).
delete p from product p left join (
select * from product order by id asc limit 10
) ps on p.id = ps.id where ps.id is null
왜 첫 번째 예에서 구문 오류가 발생하는지 이해할 수 없습니다.그 문서는 이 주제에 대해 상당히 제한적이다.
이것은 문제를 보여주는 가장 간단한 예에 불과하다는 것을 이해해 주시기 바랍니다.CTE를 사용하는 것이 매우 도움이 되는 보다 복잡한 시나리오가 있습니다만, 문제의 핵심을 설명하려고 합니다.
감사해요.
https://jira.mariadb.org/browse/MDEV-18511은 적어도 재귀 CTE를 DELETE와 함께 사용할 수 없음을 나타냅니다.
언급URL : https://stackoverflow.com/questions/56010962/mariadb-10-3-14-delete-statement-using-cte-results-in-syntax-error
반응형
'programing' 카테고리의 다른 글
Jest 및 vue/test-utils를 사용하여 입력 파일을 테스트하는 방법 (0) | 2022.10.18 |
---|---|
특정 유형의 모든 이벤트청취자 삭제 (0) | 2022.10.18 |
테이블 작성 시 MARIADB 오류 1064(42000) (0) | 2022.10.18 |
Python 스크립트에서 현재 git 해시를 가져옵니다. (0) | 2022.10.18 |
MySQL의 트리 구조 테이블을 한 번에 조회할 수 있습니까? (0) | 2022.10.18 |