2013-11-30 5 views
0

Я работаю с sqlite DB в iOS. У меня две таблицы с именем LEVEL и SUBJECT. LEVEL TABLESUBJECT TABLEСинхронизация между двумя таблицами

Теперь мне нужно синхронизировать выше двух таблиц, где TOTALCREDITS в таблице LEVEL будет обновляться автоматически, когда пользователь добавит новую запись в таблице ПРЕДМЕТА (который использует LEVELID в качестве иностранного ключа).

ответ

1

Вам нужен trigger:

CREATE TRIGGER update_totalcredits 
AFTER INSERT ON Subject 
BEGIN 
    UPDATE Level 
    SET TotalCredits = (SELECT SUM(Credits) 
         FROM Subject 
         WHERE LevelID = NEW.LevelID) 
    WHERE LevelID = NEW.LevelID; 
END; 

Однако, может быть, лучше, чтобы вычислить общий объем кредитов динамически (с SELECT SUM(... запроса) всякий раз, когда вы нуждаетесь в них.

Смежные вопросы