Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
Есть 2 таблицы shop_goods ( id SERIAL PRIMARY KEY, cat_id int4, ... ); shop_cats ( id SERIAL PRIMARY KEY, cat_parent_id int4, //для организации древовидной структруы каталога catin_count int4, //поле для учета количества товаров в категории - избыточные данные для ускорения работы ... ); В общем ситуация такова - необходимо после запросов DELETE, INSERT (для бд shop_goods) изменять количество товаров в категории - catin_count - то есть пересчитывать количество для каждой категории - либо только для той в которой произошло добавление/удаление товара (не знаю, думаю такое невозможно). Как это сделать? (PL/PgSQL) И еще вопрос - будет ли триггер сохранятся при дампе БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 11:42 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
для вставки: функция good_insert begin update shop_cats set catin_count+1 where id=NEW.id return NEW; end; CREATE TRIGGER blablabla AFTER INSERT ON "shop_goods" FOR EACH ROW EXECUTE PROCEDURE "good_insert"; для удаления: функция good_delete begin update shop_cats set catin_count-1 where id=OLD.id return null; end; CREATE TRIGGER blablabla1 AFTER DELETE ON "shop_goods" FOR EACH ROW EXECUTE PROCEDURE "good_delete"; функции сохраняются при дампе схемы, триггеры - при дампе таблицы или полном дампе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 14:14 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
Извините, такой вопрос: в триггерах (функциях) можно использовать параметры? Что означает ..where id=NEW.id return NEW; ? Я имею в виду: что означает именно условие? Что означает "NEW. id"? Ведь параметр(категория) не передается. А я так понимаю что "NEW. id" - это именно номер товара (shop_goods.id)? Или все-таки shop_cats.id? Разве функция используемая в триггере не должна выдававать пустой результат? Заранее благодарен за разъяснения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 18:09 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
twistfireИзвините, такой вопрос: в триггерах (функциях) можно использовать параметры? Что означает ..where id=NEW.id return NEW; ? Я имею в виду: что означает именно условие? Что означает "NEW. id"? Ведь параметр(категория) не передается. А я так понимаю что "NEW. id" - это именно номер товара (shop_goods.id)? Или все-таки shop_cats.id? Разве функция используемая в триггере не должна выдававать пустой результат? Заранее благодарен за разъяснения. NEW - это алиас на вставляемую/меняемую строку. OLD - алиас на строку, которая была до этого. при апдейте у тебя будут оба алиаса, при удалении - только OLD, при вставке - только NEW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 18:45 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
twistfireРазве функция используемая в триггере не должна выдававать пустой результат? Не должна. Она должна возвращать либо NEW, либо OLD, либо NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 18:46 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
создал триггер и функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вроде все прошло только при создании триггера ругнулось типа тип триггер, а не опакуе. Удаляю из shop_goods - успешно. А данные не обновляются совершенно. Почему? в Чем ошибка может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 22:43 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
все - разобрался - спасибо за помощь. А как сделать дамп так чтобы полностью базу вместе со всеми функциями и триггерами задампить? Такое можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 22:57 |
|
||
|
помогите создать триггер
|
|||
|---|---|---|---|
|
#18+
Да. Смотри ключи для утилиты pgdump ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 23:56 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33892887&tid=2006188]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 376ms |

| 0 / 0 |
