2012-02-20 2 views
0

저는 SQL/SQLite에 비교적 익숙하며 데이터베이스에 트리거를 설정하려고합니다. 기본적으로 사람의 이름과 ID를 포함하는 하나의 테이블이 있고 다른 테이블에는 해당 사람들의 항목이 들어 있습니다. 여기 내 테이블의 스키마는 다음과 같습니다Android SQLite 트리거 문제

CREATE TABLE people(_id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING NOT NULL, 
amount_people INTEGER); 


CREATE TABLE entries (_id INTEGER PRIMARY KEY AUTOINCREMENT, 
    user INTEGER NOT NULL, date STRING NOT NULL, 
     title STRING NOT NULL, amount_entry INTEGER NOT NULL, 
    notes STRING, FOREIGN KEY (user) REFERENCES people (_id) ON DELETE CASCADE); 
나는 사람들이 테이블에있는 사용자에 대한 새 항목이 생성 될 때마다 잔액을 업데이트하는 트리거를 구축하고자하는

사용자를 입력하십시오. 이것은 쉬워야하는 것처럼 보이지만 지난 2 시간 동안 성공을 거두지 않으려 고 노력했습니다.

다음은 트리거 내 잘못 버전 : 일

CREATE TRIGGER update_total_balance AFTER INSERT ON entries 
BEGIN 
UPDATE people SET amount_people = amount_people + (amount_entry FROM entries) 
    WHERE _id = (user FROM entries); 
END; 

답변

0

안된 ...

CREATE TRIGGER update_total_balance AFTER INSERT ON entries 
BEGIN 
UPDATE people SET amount_people = amount_people + new.amount_entry 
    WHERE _id = new.user; 
END; 
+0

아 그리고 내가 달성하기 위해 노력하고 있었는지 정확히! 방아쇠를 당길 때의 시도 중 일부에서, 나는 오래되고 새로운 것으로 amount_people을 접두어로 붙였습니다. 나는 그것이 잘못되었다고 생각합니다. 응답 주셔서 감사합니다! – cbrown