Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление записи [D6, Firebird]


MNz ©   (2005-01-12 21:30:00) 

Здравствуйте мастера!
Подскажите, пожалуйста, как сделать так чтобы при удалении записи из таблицы «№1» копия этой записи создавалась в таблице «№2». Таблицы «№1» и «№2» идентичны по структуре.


jiny   (2005-01-13 11:15:00) [1]

А может тогда не удалять ее явным способом, а добавить поле IsDeleted(smallint) 0 - удалена, 1 - жива. И только апдейтить это поле при "удалении"


MNz   (2005-01-13 11:10:00) [2]

А это можно как-то сделать без использования ХП и Триггеров?


DSKalugin   (2005-01-13 10:59:00) [3]

Я делаю это как сказал Fay ©

CREATE TRIGGER "TR_sklad_BeforeDelete" FOR "sklad"
ACTIVE BEFORE DELETE POSITION 0
AS
begin
insert into "sklad_trash" (
 список полей челез запятую    
)
values (
   "sklad"."cod",
   "sklad"."detail_number",
 список полей челез запятую,
   'today');
end

отличием в структуре таблицы-мусорника является наличие дополнтельного поля с датой удаления, отсутствие индексов и ограничений


GanibalLector   (2005-01-13 00:15:00) [4]

или ХП,входным параметром которой будет некий ID.Соответственно,копирование данных в "таблицу2",удаление из "таблицы1"


Fay   (2005-01-12 21:46:00) [5]

создать для этого триггер


Наверх

Титульная страница Поиск, карта сайта Написать письмо