|
4.3. Предложение INSERT4.3.1. Вставка единственной записи в таблицуДобавить в таблицу Блюда блюдо: Шашлык (БЛ - 34, Блюдо - Шашлык, В - Г, Основа - Мясо, Выход - 150) при неизвестной пока трудоемкости приготовления этого блюда. INSERT INTO Блюда (БЛ, Блюдо, В, Основа, Выход) VALUES (34, 'Шашлык', 'Г', 'Мясо', 150); Создается новая запись для блюда с номером 34, с неопределенным значением в столбце Труд. Порядок полей в INSERT не обязательно должен совпадать с порядком полей, в котором они определялись при создании таблицы. Вполне допустима и такая версия предыдущего предложения: INSERT INTO Блюда (Основа, В, Блюдо, БЛ, Выход) VALUES ('Мясо', 'Г', 'Шашлык', 34, 150); При известной трудоемкости приготовления шашлыка (например, 5 коп) сведения о нем можно ввести с помощью укороченного предложения: INSERT INTO Блюда VALUES (34, 'Шашлык', 'Г', 'Мясо', 150, 5); в котором должен соблюдаться строгий порядок перечисления вводимых значений, так как, не имея перечня загружаемых столб-цов, СУБД может использовать лишь перечень, который определен при создании модифицируемой таблицы. В предыдущих примерах проводилась модификация стержневой сущности, т.е. таблицы с первичным ключом БЛ (см.п.2.4 в литературе [2]). Почти все СУБД имеют механизмы для предотвращения ввода не уникального первичного ключа, например, ввода "Шашлыка" под номером, меньшим 34. А как быть с ассоциациями или другими таблицами, содержащими внешние ключи? Пусть, например, потребовалось добавить в рецепт блюда Салат летний (БЛ = 1) немного (15 г) лука (ПР = 10), и мы воспользовались предложением INSERT INTO Состав (БЛ, ПР, Вес) VALUES (1, 10, 15); Подобно операции DELETE операция INSERT может нарушить непротиворечивость базы данных. Если не принять специальных мер, то СУБД не проверяет, имеется ли в таблице Блюда блюдо с первичным ключом БЛ = 1 и в таблице Продукты - продукт с первичным ключом ПР = 10. Отсутствие любого из этих значений породит противоречие: в базе появится ссылка на несуществующую запись. Проблемы, возникающие при использовании внешних ключей, подробно рассмотрены в литературе [2], а здесь отме-тим, что все "приличные" СУБД имеют механизмы для предотв-ращения ввода записей со значениями внешних ключей, отсутст-вующих среди значений соответствующих первичных ключей. 4.2 | Содержание | 4.3.2 Copyright © CIT-forum |
|||||||||||||||||
With any suggestions or questions please feel free to contact us |