![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли в одном SQL-запросе сделать удаление из связанных таблиц [D5]
Дельфятник © (2003-04-18 10:42:00)Подскажите, пожалуйста, можно ли это сделать с использованием TUpdateSQL, и если да, то как?
kravchuk (2003-04-18 18:29:00) [1]>Reindeer Moss Eater (18.04.03 18:22)
да нифига, там нельзя вписывать скрипт, только одно SQL выражение.
Reindeer Moss Eater (2003-04-18 18:22:00) [2]TUpdateSQL так работает.
kravchuk (2003-04-18 16:42:00) [3]>Reindeer Moss Eater (18.04.03 12:44)
и как, нормально получается таким образом скрипт выполнять? если да то поделись как, а то TUpdateSQL так не работает :0)
Reindeer Moss Eater (2003-04-18 12:44:00) [4]Подскажите, пожалуйста, можно ли это сделать с использованием TUpdateSQL, и если да, то как?
Можно.
TUpdateSQL.DeleteSQL.Add("Delete From FirstTable");
TUpdateSQL.DeleteSQL.Add("Delete From SecondTable");
.................
TUpdateSQL.DeleteSQL.Add("Delete From LastTable");
Zacho (2003-04-18 12:32:00) [5]
> 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
Соловьев (2003-04-18 11:44:00) [6]
> Ihtiandr © (18.04.03 11:43
можно.
Ihtiandr (2003-04-18 11:43:00) [7]А в ib как это можно организовать.
NAlexey (2003-04-18 11:37:00) [8]>как раз я ее и использую. только у меня не Oracle...
Точно, ошибочка вышла, не разобрался сразу. Показалось что ты используешь тот подход который описывал.
Соловьев (2003-04-18 11:33:00) [9]
> Ну это дело вкуса, не использовать ссылочную целостность
> много терять.
как раз я ее и использую. только у меня не Oracle...
NAlexey (2003-04-18 11:25:00) [10]>мороки меньше. Я так и делаю :))))
Ну это дело вкуса, не использовать ссылочную целостность много терять.
Вот пример справки из 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:21:00) [11]
> Какой такой хранимой процедурой?
delete from <table2> where
delete from <table3> where
...
delete from <table4> wherу
можно еще ичто там по присваивать.
хотя
> PRIMARY KEY -> FOREIGN KEY то
мороки меньше. Я так и делаю :))))
NAlexey (2003-04-18 11:07:00) [12]>Я хотел обойтись бех хранимой процедуры, но, видимо, всё-таки придётся её писать.
Какой такой хранимой процедурой? Я же коворю что если таблицы связаны по ключу: PRIMARY KEY -> FOREIGN KEY то можно организовать каскадное удаление, когда удадаляя или изменяя запись в главной таблице удаляешь или меняешь записи в подчиненных автоматически.
Дельфятник (2003-04-18 11:06:00) [13]А как их использовать?
Соловьев (2003-04-18 11:04:00) [14]а триггеры?
Дельфятник (2003-04-18 11:01:00) [15]СУБД Oracle. Я хотел обойтись бех хранимой процедуры, но, видимо, всё-таки придётся её писать.
NAlexey (2003-04-18 10:47:00) [16]BD какая? Если ORACLE или MSSQL то там можно организовать каскадное удаление. при создании таблиц указать CASCADE ON DELETE или тоже самое сделать с помощью ALTER TABLE...
Соловьев (2003-04-18 10:44:00) [17]если использовать delete from... то нет, но можно поробовать ХП.