|
|
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
подскажите пожалуйста а есть ли возможность триггером проверять что записано значение в один столбец, а затем производить с ним какие-нибудь действия и ложить в другой столбец. ну как я уже сделал подсчет суммы пришедших значений и сложение в другой столбец. НО триггер реагирует на все занесения а мне необходимо чтобы он обрабатывал занесение в опрделенный столбец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 06:58:45 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, 1) Код: plaintext 1. 2) Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 07:48:51 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
т.е. не правильно указывать колонки в хранимой процедуре, а можно сразу создать триггер на определенные колонки, я правильно понимаю? и это не правильно Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 07:51:22 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
а нет я не правильно наверно выразился. есть столбец - приходит значение с прибора. таких приборов несколько. как указать чтобы триггер реагировал на данные только определенных приборов пример таблицы id value time описание1 345 12.23.34 вот на этот тег нужно повесить триггер24456 12.23.34 это добавление не должно обрабатываться3 346 12.23.34 тут некое значение на основании данных триггера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 08:12:54 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
ну конечно, не столбец, а строка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 08:15:37 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
как понял вот это нужно читать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 09:46:15 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roerкак понял вот это нужно читать Нет, это и это надо читать. Триггеры имеет разные реализации в разных СУБД, читать доки по MSSQL при работе с PostgreSQL смысла нет. По задаче - надо логику в коде триггера отразить, может быть доп. поле - флаг "triggered"(yes|no) в таблицу придется добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 10:15:45 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
так то читал. а разве в постгресе нет дмл? было бы круто CREATE TRIGGER check_update BEFORE UPDATE ON accounts FOR EACH ROW WHEN (OLD.balance IS DISTINCT FROM NEW.balance) EXECUTE PROCEDURE check_account_update(); как я понимаю old.balance и будет той строкой что я хочу проверять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 13:45:50 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
а нет, это опять же колонка, а мне строка нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 13:49:10 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, в каком кулинарном училище вы учились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 22:39:12 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
а можно про теме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 07:10:07 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, Все по теме: Сперва нужно закончить школу, затем институт, получить какой-нибудь опыт работы. И только потом можно задумываться о триггерах. До окончания школы это преждевременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 08:34:27 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roerа можно про теме Можно. Я всегда говорил, что пользования триггерами нужно всячески избегать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 09:51:01 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
Триггерманdes1roerа можно про теме Можно. Я всегда говорил, что пользования триггерами нужно всячески избегать. Да. Особенно лицам, не достигшим 16-ти лет, к коим относится уважаемый топик-стартер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 10:12:58 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, OLD, NEW это и есть разные версии "строки", OLD - перед изменениями, NEW - после. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 12:32:06 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
т.е. CREATE TRIGGER check_update BEFORE UPDATE ON accounts FOR EACH ROW WHEN (OLD.balance IS DISTINCT FROM NEW.balance) EXECUTE PROCEDURE check_account_update(); правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 07:19:58 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, наверное. это вам виднее что вы хотите сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 15:37:58 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
млин че задача такая нетривиальная что ли? подсказть никто не может мне вот такую ошибку бахает ERROR: INSERT trigger's WHEN condition cannot reference OLD values LINE 1: ...ta" FOR EACH ROW WHEN (pg_trigger_depth() = 0 AND old."F_Con... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 12:15:13 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, Так вам же ясно пишут, что в условии WHEN триггера на INSERT недопустимы ссылки на OLD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 14:31:14 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
des1roer, делайте OLD IS DISTINCT FROM NEW внутри функции check_account_update(); и псё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 15:43:49 |
|
||
|
тригерры в Postgres
|
|||
|---|---|---|---|
|
#18+
все оказалось элементарно Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2014, 08:43:23 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=123&tid=1998498]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 332ms |

| 0 / 0 |
