Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос на обновление / 2 сообщений из 2, страница 1 из 1
25.06.2014, 11:14
    #38679421
TempGuest05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на обновление
Добрый день всем.

Есть три таблички, примерно такие. Есть ряды(dtSets), есть модели(dtModels), есть аргументы(dtArguments). Каждая модель ссылается на какой-то ряд и на список аргументов. Каждый аргумент, также ссылается на какой-то ряд.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE dtSets
(ID INTEGER NOT NULL PRIMARY KEY,
 NameSet CHAR(100)
 SelectedSet SMALLINT,
 CountLink SMALLINT);

CREATE TABLE dtModels
(ID INTEGER NOT NULL PRIMARY KEY,
 IDset INTEGER NOT NULL,
 SelectedMod SMALLINT,
 Name CHAR(70),
 FOREIGN KEY(IDset) REFERENCES dtSets(ID) ON DELETE CASCADE ON UPDATE CASCADE);

CREATE TABLE dtArguments
(ID INTEGER NOT NULL PRIMARY KEY,
 IDModel INTEGER NOT NULL,
 IDArgument INTEGER NOT NULL,
 Shift INTEGER NOT NULL,
 FOREIGN KEY(IDModel) REFERENCES dtModels(ID) ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY(IDArgument) REFERENCES dtSets(ID) ON DELETE CASCADE ON UPDATE CASCADE);



В один прекрасный момент, несколько записей одновременно dtModels.SelectedMod, меняется с 0 на 1. Вопрос: Как для таких моделей (с SelectedMod = 1) в dtSets.CountLink записать кол-во ссылок на этот dtSets.ID в dtArguments.IDArgument + прямые ссылки (т.е. dtModel.IDSet=dtSets.ID)?

Сам никак не соображу, скорее всего надо использовать (SELECT COUNT() FROM), но как потом связать не знаю.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
UPDATE dtSets
SET
 SelectedSet = 1,
 CountLink=1 //?
WHERE ID IN 
  (SELECT IDSet;
   FROM dtModels
   WHERE SelectedMod=1);
...
Рейтинг: 0 / 0
25.06.2014, 14:06
    #38679715
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на обновление
TempGuest05,

можно в триггере
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос на обновление / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]