Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Можно ли в одном SQL-запросе сделать удаление из связанных таблиц   Найти похожие ветки 

 
Дельфятник   (2003-04-18 10:42) [0]

Подскажите, пожалуйста, можно ли это сделать с использованием TUpdateSQL, и если да, то как?


 
Соловьев ©   (2003-04-18 10:44) [1]

если использовать delete from... то нет, но можно поробовать ХП.


 
NAlexey ©   (2003-04-18 10:47) [2]

BD какая? Если ORACLE или MSSQL то там можно организовать каскадное удаление. при создании таблиц указать CASCADE ON DELETE или тоже самое сделать с помощью ALTER TABLE...


 
Дельфятник   (2003-04-18 11:01) [3]

СУБД Oracle. Я хотел обойтись бех хранимой процедуры, но, видимо, всё-таки придётся её писать.


 
Соловьев ©   (2003-04-18 11:04) [4]

а триггеры?


 
Дельфятник   (2003-04-18 11:06) [5]

А как их использовать?


 
NAlexey ©   (2003-04-18 11:07) [6]

>Я хотел обойтись бех хранимой процедуры, но, видимо, всё-таки придётся её писать.
Какой такой хранимой процедурой? Я же коворю что если таблицы связаны по ключу: PRIMARY KEY -> FOREIGN KEY то можно организовать каскадное удаление, когда удадаляя или изменяя запись в главной таблице удаляешь или меняешь записи в подчиненных автоматически.


 
Соловьев ©   (2003-04-18 11:21) [7]


> Какой такой хранимой процедурой?

delete from <table2> where
delete from <table3> where
...
delete from <table4> wherу

можно еще ичто там по присваивать.

хотя

> PRIMARY KEY -> FOREIGN KEY то

мороки меньше. Я так и делаю :))))


 
NAlexey ©   (2003-04-18 11:25) [8]

>мороки меньше. Я так и делаю :))))
Ну это дело вкуса, не использовать ссылочную целостность много терять.
Вот пример справки из MSSQL, то же самое есть и в ORACLE когда я с ним работал конкретно использовал этот механизм.
Вешается на FOREIGN KEY и все...
ON DELETE CASCADE

Specifies that if an attempt is made to delete a row with a key referenced by foreign keys in existing rows in other tables, all rows containing those foreign keys are also deleted. If cascading referential actions have also been defined on the target tables, the specified cascading actions are also taken for the rows deleted from those tables.


 
Соловьев ©   (2003-04-18 11:33) [9]


> Ну это дело вкуса, не использовать ссылочную целостность
> много терять.

как раз я ее и использую. только у меня не Oracle...


 
NAlexey ©   (2003-04-18 11:37) [10]

>как раз я ее и использую. только у меня не Oracle...
Точно, ошибочка вышла, не разобрался сразу. Показалось что ты используешь тот подход который описывал.


 
Ihtiandr ©   (2003-04-18 11:43) [11]

А в ib как это можно организовать.


 
Соловьев ©   (2003-04-18 11:44) [12]


> Ihtiandr © (18.04.03 11:43

можно.


 
Zacho ©   (2003-04-18 12:32) [13]


> Ihtiandr © (18.04.03 11:43)

Читай Data Definition Guide -> Chapter 6 "Working with tables" -> Creating tables -> Defining integrity constraints -> Enforcing referential integrity with the FOREIGN KEY


 
Reindeer Moss Eater   (2003-04-18 12:44) [14]

Подскажите, пожалуйста, можно ли это сделать с использованием TUpdateSQL, и если да, то как?

Можно.
TUpdateSQL.DeleteSQL.Add("Delete From FirstTable");
TUpdateSQL.DeleteSQL.Add("Delete From SecondTable");
.................
TUpdateSQL.DeleteSQL.Add("Delete From LastTable");



 
kravchuk ©   (2003-04-18 16:42) [15]

>Reindeer Moss Eater (18.04.03 12:44)

и как, нормально получается таким образом скрипт выполнять? если да то поделись как, а то TUpdateSQL так не работает :0)


 
Reindeer Moss Eater   (2003-04-18 18:22) [16]

TUpdateSQL так работает.


 
kravchuk ©   (2003-04-18 18:29) [17]

>Reindeer Moss Eater (18.04.03 18:22)
да нифига, там нельзя вписывать скрипт, только одно SQL выражение.



Страницы: 1 вся ветка

Текущий архив: 2003.05.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
14-23361
Мазут Береговой Рюрикович
2003-04-19 10:50
2003.05.08
Знакомая купила комп с паролем, а пароля не знает.


14-23304
acsoft
2003-04-18 14:59
2003.05.08
Устал мучаться с написанием плагинов.


14-23339
Denich
2003-04-20 01:15
2003.05.08
????Ребят, как удалять Paramstr(0)????


14-23396
Evg12
2003-04-20 00:17
2003.05.08
Интересует нормальный компрессор (паковщик)


14-23345
Шоломицкий
2003-04-20 17:58
2003.05.08
Как скопировать файлы с дискеты