4.5. О конструировании предложений модификации
Для тех, кто достаточно хорошо понял
предложение
SELECT, несложно овладеть конструированием предложений DELETE, INSERT и
UPDATE. Но в процессе такого конструирования следует учитывать, что:
- Если в WHERE фразе предложений DELETE и UPDATE
используется
вложенный подзапрос, то во фразе FROM этого подзапроса не должна
упоминаться таблица, из которой удаляются (в которой обновляются)
строки. Аналогично, в подзапросе предложения INSERT не должна
упоминаться таблица, в которую загружаются данные.
Так, SQL отвергнет предложение
INSERT INTO Выбрано SELECT (33), Т, БЛ FROM Выбрано WHERE СМ = 17;
позволяющее ввести информацию о том, что
отдыхающий,
сидящий на 33-м месте, выбирает тот же набор блюд, что и отдыхающий,
сидящий на 17-м месте. Ввод придется осуществить через какую-либо
промежуточную таблицу, например, таблицу Выбор:
DELETE FROM Выбор;
INSERT INTO Выбор (СМ, Т, БЛ) SELECT (33), Т, БЛ FROM Выбрано WHERE СМ = 17;
INSERT INTO Выбрано SELECT СМ, Т, БЛ FROM Выбор;
- Составляя предложения модификации данных, необходимо
все время помнить о сохранении непротиворечивости базы данных. Об этом
упоминалось ранее и подробно говорилось в литературе [2].
4.4 | Содержание
| 5.1
|