Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
11 / 11 / 10
Регистрация: 06.10.2012
Сообщений: 675

Удаление в нескольких таблицах

09.11.2014, 15:24. Показов 872. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Существуют такие таблицы:

Написал такое удаление:
SQL
1
2
3
4
5
6
7
8
9
10
11
DELETE
    FROM goodsProducer AS GP, Box_key AS BK, postawki AS p, PrevStore AS PS, FK_custom AS FKC,
        custom AS c, bid AS b, treaty AS t, gather AS g, checkout AS che,
        FK_order_FK_towar AS FKFK, PrevSale AS PrevS, selling AS sel
    WHERE GP.key_goodsProducer = BK.FK_goodsProducer AND Gp.key_goodsProducer
        = p.FK_goodsProducer AND PS.FK_postawki = p.key_postawki AND FKC.FK_PrevStore = PS.key_PrevStore
        AND c.key_custom = FKC.FK_customs AND p.FK_bid = b.key_bid AND
        b.FK_contract = t.numberGarantii AND g.FK_bid = b.key_bid AND g.FK_checkout
        = che.key_Checkout AND FKFK.FK_checkout = che.key_Checkout AND
        che.key_Checkout = PrevS.FK_order AND sel.key_selling = PrevS.FK_selling
        AND GP.key_goodsProducer = @keyGoods
Но удалять он не хочет. Как сделать удаление?

Так же написано тоже самое, но через другое связывание:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DELETE
FROM         goodsProducer INNER JOIN
                      Box_key ON goodsProducer.key_goodsProducer = Box_key.FK_goodsProducer INNER JOIN
                      postawki ON goodsProducer.key_goodsProducer = postawki.FK_goodsProducer INNER JOIN
                      PrevStore ON postawki.key_postawki = PrevStore.FK_postawki INNER JOIN
                      FK_custom ON PrevStore.key_PrevStore = FK_custom.FK_PrevStore INNER JOIN
                      custom ON FK_custom.FK_customs = custom.key_custom INNER JOIN
                      bid ON postawki.FK_bid = bid.key_bid INNER JOIN
                      treaty ON bid.FK_contract = treaty.numberGarantii INNER JOIN
                      gather ON bid.key_bid = gather.FK_bid INNER JOIN
                      checkout ON gather.FK_checkout = checkout.key_Checkout INNER JOIN
                      FK_order_FK_towar ON checkout.key_Checkout = FK_order_FK_towar.FK_checkout INNER JOIN
                      PrevSale ON checkout.key_Checkout = PrevSale.FK_order INNER JOIN
                      selling ON PrevSale.FK_selling = selling.key_selling
WHERE goodsProducer.key_goodsProducer = 1
В данном случае ругается на синтаксис
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2014, 15:24
Ответы с готовыми решениями:

Уникальность идентификаторов в нескольких таблицах.
Стоит задача: при вставке записей порождать целочисленные primary key, уникальные для нескольких (!!) таблиц. В оракле это решалось...

Поменять значения идентификаторов в нескольких таблицах циклом
Доброго времени суток. Вот сделал такую выборку как на картинке, джойнил две таблицы. Я хочу поменять значения столбцов id и point_id...

Удаление нескольких таблиц в SQL базе
Доброго времени суток господа. Столкнулся с задачей удалить несколько таблиц в SQL базе. Данные по именам таблиц в базу отправляю в XML....

4
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.11.2014, 04:47
Vla00, Если сначала ознакомится с спользуемым инструметом, а только потом его использовать, то можно потерять гораздо меньше времени. Синтаксис DELETE не позволяет удалять строки более чем из одного объекта (Таблица/Представление/Функция/Табличная переменная). Ораганизовать удаление из кучи таблиц при помощи одного DELETE можно через каскадное удаление, триггер, представление. Ну или выполнив DELETE поочередно для всех таблиц.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
10.11.2014, 10:07
Цитата Сообщение от kodv Посмотреть сообщение
Ораганизовать удаление из кучи таблиц при помощи одного DELETE можно через представление.
Приведите, пожалуйста, пример.
Я знаю только один экзотический способ сделать это.
Но Вы об этом не упоминаете, а в официальной документации об этом нет ни одной строчки!
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.11.2014, 10:15
iap, На самом деле я имел ввиду вариацию способа с триггерами. То есть, удаление происходит из представления, у которого есть триггер INSTEAD OF DELETE. В данном контексте человеку явно нужно каскадное удаление, поэтому про триггеры можно было, наверное, и не упоминать
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
10.11.2014, 10:17
Цитата Сообщение от kodv Посмотреть сообщение
iap, На самом деле я имел ввиду вариацию способа с триггерами. То есть, удаление происходит из представления, у которого есть триггер INSTEAD OF DELETE. В данном контексте человеку явно нужно каскадное удаление, поэтому про триггеры можно было, наверное, и не упоминать
А я уж подумал было про MERGE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2014, 10:17
Помогаю со студенческими работами здесь

Удаление связанных строк в нескольких таблицах
Есть две таблицы: users и details. В users хранятся пользователи (идентификатор и имя), в details - расширенные данные о пользователях...

Поиск в нескольких таблицах
Задача такова Имеем БД, на форме ADOTable. необходимо провести поиск сразу по нескольким столбцам и получить быбор сразу нескольких...

Поиск в нескольких таблицах
Доброго времени суток, помогите написать sql поиска в нескольких таблицах так все работает, но естественно это из 1 таблицы $result = ...

Поиск данных в нескольких таблицах
Доброго времени суток! Никак не получается сделать поиск из нескольких таблиц. После компиляции при попытке выполнить запрос появляется...

Посик по сайту в нескольких таблицах
Бен, ай нид хелп. Запрос: $result = mysql_query("(SELECT * FROM `data` WHERE `text` LIKE '%$search%' OR `title` LIKE '%$search%' OR...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru