Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
О триггерах
|
|||
|---|---|---|---|
|
#18+
Вопрос по поводу триггеров.... ситуация следующая: после добавления новой записи в таблицу, в таблице автоматически формируются некоторые данные, например, текущее время, автоинкрементный id... Есть ли возможность создать триггер, который после инсерта возвращал бы либо всю новую запись, либо ее отдельные поля... Если нет, то есть ли в постгресе функция, которая возвращает последний вставленный id??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 14:58 |
|
||
|
О триггерах
|
|||
|---|---|---|---|
|
#18+
В триггере определены специальные объекты NEW и OLD, которые соответственно содержат в себе новую и старую версию строки. По идее из них можно получить интересующую тебя информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 15:40 |
|
||
|
О триггерах
|
|||
|---|---|---|---|
|
#18+
>Есть ли возможность создать триггер, который после инсерта возвращал бы либо всю новую запись, либо ее отдельные поля... куда возврящал? currval('table_field_seq') точно не помню,посмотри в доках как правильно будет называтся сиквенс созданный автоматически при создании поля с типом serial ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:03 |
|
||
|
О триггерах
|
|||
|---|---|---|---|
|
#18+
дело в том, что я использую объекты NEW или OLD... но может я просто не понимаю, как работают триггеры? создал простую таблицу: CREATE TABLE test ( id serial NOT NULL, name text ) WITHOUT OIDS; ALTER TABLE test OWNER TO "Raven"; триггерную функцию: CREATE OR REPLACE FUNCTION "A"() RETURNS "trigger" AS $BODY$begin return new; end$BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION "A"() OWNER TO "Raven"; и сам триггер: CREATE TRIGGER OnInsertTrigger AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE "A"(); По моим ощущениям, на запрос: insert into "test" ("name") values ('Raven') должно приходить что то вроде данных из одной строки, содержащей в первой колонке - "id", во второй - "name"... то есть новый id и само имя - Raven... может я не прав??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:05 |
|
||
|
О триггерах
|
|||
|---|---|---|---|
|
#18+
операция Inset никогда и ниче не возврящает(почти, но это к теме не относится) несмотря на то что у тебя есть или нет тригера на эту таблицу. она либо вставляет строку либо нет.. если тебе надо получить тот самый id который был вставлен делай как я тебе написал в предыдущем посте. p.s. 1. читай доки что такое тригер.. там написанно лучше чем тебе зесь могут расказать. 2. тот тригер который ты написал вообще ничего не делает. с ним или без него ничего не изменится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2007357]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 360ms |

| 0 / 0 |
