Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизУстановить генератор Найти похожие ветки
← →
Mike Kouzmine © (2006-07-22 19:14) [0]У меня часто чистится одна табличка и захотелось мне сбрасывать генератор для пк в 0 после удаления всех записей, но не получилось.
Пишу в триггере set generator vasia to 0 - ошибка мол неизвестный чар на set. Полистал книги (1) полазил по ибэйзру - не нашел. Хотя это и не важно, но просто интересно?
← →
Desdechado © (2006-07-22 21:03) [1]1. Нехорошая мысль - сьрасывать генератор в триггере. Лучше явной отдельной командой (или процедурой, в которой
gen_id(genName, - gen_id(genName,0))
← →
Mike Kouzmine © (2006-07-22 22:48) [2]Desdechado © (22.07.06 21:03) [1] Спасибо. Почему?
← →
Johnmen © (2006-07-23 00:41) [3]
> Mike Kouzmine © (22.07.06 19:14)
Теоретически должно работать. Надо бы посмотреть тельце триггера.
И, кстати, как в триггере узнаётся, что записей нет?
А в целом, такой подход порочен. ИМХО.
← →
Mike Kouzmine © (2006-07-23 11:01) [4]Johnmen © (23.07.06 00:41) [3]
Суть - импорт из 1с. Перед импортом все чищу. Для красоты решил на афтерделете поставить обнуление генератора. С ходу не удалось и стало интересно. А при импорте, видимо, лучше сделать пк внутренний номер документа в 1с, если он с новым годом не начинается с 0.
а в тельце только set generator
← →
Mike Kouzmine © (2006-07-23 11:03) [5]только сейчас дошло, что при массовом удолении триггер срабатывает столько раз, сколько записей. Или нет?
← →
Anatoly Podgoretsky © (2006-07-23 11:29) [6]Если триггер ON DELETE то конечно каждый раз.
← →
Mike Kouzmine © (2006-07-23 11:33) [7]Понятно. Действительно бредовая идея.
← →
sniknik © (2006-07-23 11:34) [8]а как удаляеш?
по идее не должно, во всяком случае в mssql так, т.е. если конечно удаление типа while not xxquery.isempty do xxquery.delete; то тогда на каждое удаление сработает, если же запросом "удалить все из таблици" то только раз.
не думаю что в ib в этом плане есть отличия.
← →
sniknik © (2006-07-23 11:35) [9]> Если триггер ON DELETE то конечно каждый раз.
серьезно? так отличается?
← →
Mike Kouzmine © (2006-07-23 11:45) [10]sniknik © (23.07.06 11:34) [8] За раз.
← →
Anatoly Podgoretsky © (2006-07-23 11:53) [11]Ты хочешь сказать, что у меня не будет отрабатывать триггер при удалении каждой записи, в котором например ведется лог удаления, так это не так или ты имеешь в виду, что удаленные за раз записи находятся в deleted.
Какое то абстрактное обсуждение, что то как то удаляется, неизвестно с какими триггерами. Тут поле для фантазирования весьма большое, можно наговорить с три бочки огурцов.
← →
sniknik © (2006-07-23 12:25) [12]Anatoly Podgoretsky © (23.07.06 11:53) [11]
это кому мне?
если мне, то хочу сказать, что тригер срабатывает на команду, а не на запись, поэтому при удалении с клиента по одной записи и срабатываний будет столько же, при общем запросе на удаление с условием на несколько записей, и срабатывание будет одно, что именно удаляется, это уже, вот в этой самой виртуальной таблице deleted надо смотреть.
только вот не уверен в том что тут в ib нет координальных отличий от mssql-я. (хотя с чего бы им быть? вроде это основы)
Mike Kouzmine © (23.07.06 11:45) [10]
sniknik © (23.07.06 11:34) [8] За раз.
спасибо, я уже тоже пообедал.
p.s. второе предложение из [11] это уж точно к тебе.... ;)
← →
Mike Kouzmine © (2006-07-23 12:28) [13]sniknik © (23.07.06 12:25) [12] Да я не претендую на обсуждение идеи, которая и мной признана бредовой. Но если хотите...
← →
sniknik © (2006-07-23 13:02) [14]Mike Kouzmine © (23.07.06 12:28) [13]
не, я не хочу. я вообще отвечал на [5] а не обсуждал идею. (причем с оговоркой что это для mssql и возможно скорее всего и для ib тоже)
и потом, в абстрактных обсуждениях участвовать это мазохизм... ;)
← →
Anatoly Podgoretsky © (2006-07-23 13:04) [15]sniknik © (23.07.06 12:25) [12]
Конечно не тебе, мне просто больно от такого ведения дисскуссии.
← →
Anatoly Podgoretsky © (2006-07-23 13:05) [16]Mike Kouzmine © (23.07.06 12:28) [13]
Подробности положено приводить, тексты скриптов, запросов, триггеров, образцы записей. Тогда обсуждение будет более конструктивным.
← →
Desdechado © (2006-07-23 13:42) [17]В IB\FB есть только один тип триггеров, срабатывающий (вне зависимости от вызвавшей его команды) на каждую запись.
В Оракле, например, есть больше видов триггеров (даже на системные события типа логина). Например, аналог IB-триггеров явно называется FOR EACH ROW - это строчные триггеры. Есть триггеры табличные, они срабатывают один раз на команду. Например, DELETE FROM tabl вызовет такой триггер один раз (строчный же вызовется для каждой строки).
Какие триггеры есть в скуле, сказать не берусь, не знаю.
Поэтому похоже, что обсуждение тут прошло о разных вещах под общим названием триггеры. Но название - единственное, что объединяет эти понятия.
← →
Mike Kouzmine © (2006-07-23 21:26) [18]Спасибо ребят, много информации получил. А то года три в руки шашек не брал. Забыл как ходить. 2006 понравился.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c