Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Вниз

Можно ли в одном 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
3-22955
Ury
2003-04-16 23:40
2003.05.08
Disconnect


3-23019
KIR
2003-04-18 11:18
2003.05.08
Народ, можно ли изменить имя таблицы IB?


3-22949
_toltec
2003-04-20 20:09
2003.05.08
Несколько вопросов о SQL


3-23001
pirat
2003-04-16 22:06
2003.05.08
BDE, ODBC, MIDAS, ADO. Что лучше ?


6-23273
tiam
2003-03-14 09:00
2003.05.08
Мапирование сетевого диска





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский