Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Обновление строк связанных таблиц


Автор: Суровый 22.7.2010, 01:23
Здравствуйте.
Столкнулся с некоторой проблемой.
Допустим, имеются две связанные таблицы.
Первая имеет поля "Наименование" и "Тип", где "Наименование" - ключевое поле
Вторая имеет поля "Наименование" и "Номер заказа"
Связь - 1 ко многим (от первой таблицы ко второй, естественно)

Таблицы выглядят следующим образом:

Первая таблица
Наименованиe- Тип
Резец------------ Металлорежущий инструмент
Дозатор--------- Монтажный инструмент

Вторая таблица
Наименование- Номер заказа
Резец------------- 1
Резец------------- 2
Дозатор---------- 3

Я хочу изменить наименование 'Резец' на 'Фреза'
Но с какой бы стороны Update я ни выполнял - БД не дает мне это сделать.
Код

UPDATE [Первая таблица]
SET Наименование = 'Фреза'
WHERE Наименование = 'Резец'

Код

UPDATE [Вторая таблица]
SET Наименование = 'Фреза'
WHERE Наименование = 'Резец'

Оба кода не работают.
You cannot add or change a record because a related record is required in table 'Первая таблица'.
Не хочется сначала добавлять объект с нужным наименованием (Фреза), переписывать в него все данные из нежелательного объекта (с наименованием Резец), а потом удалять нежелательный объект. Надеюсь есть способ, отличный от этого.

Надеюсь на Вашу помощь!

Автор: Zloxa 22.7.2010, 09:11
1)снимите констрейнты, обновите, верните обратно.
2)использвйте каскадное обновление на констрейнтах.
user posted image

Автор: Суровый 22.7.2010, 11:18
Zloxa, Огромное спасибо, все работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)