2014-11-10 1 views
1

내 코드에 문제가있어 문제가 무엇인지 파악할 수 없어서 다른 사용자가 오류를 발견 할 수 있습니다 (또는 버그에 대한 의심이 커지고 있음을 확인하십시오).트리거 내의 Sqlite CTE 삽입시 구문 오류가 발생합니다.

그래서 기본적으로 코드는 이와 동일하며 CTE 삽입이 완전히 합법적이어야하며 내부가 아닌 경우에도이 샘플 코드로도 "오류 : 근처"INSERT ": 구문 오류"가 발생합니다. 방아쇠. Sqlite 3.8.7을 사용하고 있습니다.

CREATE TABLE a (val INTEGER); 
CREATE TABLE b (val INTEGER); 

CREATE TRIGGER update_b AFTER INSERT ON a 
BEGIN 
    WITH prev AS (
     SELECT 
      0 AS val 
     ) 
     INSERT INTO b(
      val 
     ) 
     SELECT 
      prev.val 
     FROM prev; 
END; 

고마워요!

답변

1

documentation는 말한다 :

The WITH clause cannot be used within a CREATE TRIGGER.

+0

오! 그럼 그걸 설명해줍니다. 다소 이상한 제한과 전체 오류 메시지는별로 도움이되지 못했지만, 적어도 지금은 문제가 무엇인지 압니다. 감사! – tko