Страница 1 из 1
Копирование данных по наступлению определённой даты
Добавлено: 08 ноя 2006, 16:50
smily
СУБД FIREBIRD.
Мне необходимо копировать данные из одной таблицы в другугю, но только те которые в поле типа DATE содержат текущую дату. Копирование должно происходить автоматически.
Каким образом мне можно это сделать?
Помогите пжлста, очень надо!!
Заранее пасибки.
Добавлено: 08 ноя 2006, 17:00
WildSery
Ответ зависит от того, что ты подразумеваешь под "автоматически".
Если это определённое время/интервал, то без шедулера и запуска скрипта тем же isql не обойтись.
Если достаточно "хотя бы раз в день", то можно такой функционал доверить первому прицепившемуся к базе клиенту.
Добавлено: 08 ноя 2006, 18:13
smily
автоматически, ну то есть к примеру, при обращении к бд происходит проверка таблицы TABLE1 которая имеет поля
Data типа smallint
Date типа date.
если Date=текущая дата то записать DATA в таблицу TABLE2
Что то типа этого
Добавлено: 08 ноя 2006, 18:20
WildSery
smily писал(а):при обращении к бд
Всё равно непонятно. Обращении кем или чем?
В том описании, как ты написал, может, проще навесить триггер, который при вставке сразу будет копировать данные в другую таблицу?
Добавлено: 08 ноя 2006, 18:24
smily
ну да мне это и нужно, проблема в том как этот тригер должен выглядеть, не могу допетрить
Добавлено: 08 ноя 2006, 18:59
WildSery

Это ж азбука.
Код: Выделить всё
create trigger ... for table1 ... after insert ...
as begin
insert into table2 (id, data) values (new.id, new.data);
end
create trigger ... for table1 ... after update ...
as begin
if new.data != old.data then
update table2 set data=new.data where id=new.id;
end
Добавлено: 09 ноя 2006, 08:37
smily
ок.
ща испробую.
насчёт азбука-может быть, я пока ламер, просто не знал как можно дату текущую выдернуть.
пасиб за оперативный ответ

.
Добавлено: 28 ноя 2006, 18:29
smily
млин опять запара. Люди добрые как мона в триггере получить текущую дату?
Добавлено: 28 ноя 2006, 19:24
Attid
smily писал(а):млин опять запара. Люди добрые как мона в триггере получить текущую дату?
вариант 1
current_date
вариант 2
select cast('now' as date) from rdb$database into .. .
Добавлено: 28 ноя 2006, 20:14
WildSery
Attid писал(а):вариант 1
current_date
вариант 2
select cast('now' as date) from rdb$database into .. .
Во-первых, раз уж current_date, то 'TODAY', а не 'NOW'.
Во-вторых, зачем делать select from rdb$database, если можно напрямую значение использовать?
Добавлено: 28 ноя 2006, 20:24
Merlin
Видать чтоб улыбчивый поменьше в другой раз тараторил, а побольше читал доку

Добавлено: 28 ноя 2006, 21:15
WildSery
Merlin писал(а):а побольше читал доку

Всё равно ещё рано к RDB$ пускать

Добавлено: 30 ноя 2006, 14:07
smily

пасиб за советы. А инфу читаю, читаю ).