powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ТРИГЕР вставить в таблицу - trigger insert into table
4 сообщений из 4, страница 1 из 1
ТРИГЕР вставить в таблицу - trigger insert into table
    #36193741
AndreJ8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет всем
есть таблицы:

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE "public"."table2" (
  "id" BIGSERIAL, 
  "created" TIMESTAMP( 0 ) WITHOUT TIME ZONE DEFAULT ('now'::text)::timestamp without time zone, 
  "field1" CHAR( 100 ), 
  CONSTRAINT "table2_pkey" PRIMARY KEY("id")
) WITH OIDS;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE "public"."table3" (
  "table2_id" BIGINT NOT NULL, 
  "xz" VARCHAR( 20 ), 
  CONSTRAINT "table3_pkey" PRIMARY KEY("table2_id"), 
  CONSTRAINT "table3_fk" FOREIGN KEY ("table2_id")
    REFERENCES "public"."table2"("id")
    ON DELETE CASCADE
    ON UPDATE NO ACTION
    NOT DEFERRABLE
) WITH OIDS;

ALTER TABLE "public"."table3"
  ALTER COLUMN "table2_id" SET STATISTICS  0 ;

ALTER TABLE "public"."table3"
  ALTER COLUMN "xz" SET STATISTICS  0 ;

нужно что бы при вставке INSERT INTO в таблицу table2 (создается новый id) в таблицу table3 вставлялась запись с таким же (только что созданным) table3.table2_id

понимаю что надо использовать тригер, ON INSERT - это понятно, и делать это после insert
поясните пожалуйста (лучше примером кода) как правильно сделать тригер
1. получить только что вставленный table2.id
2. как его вставить в table3.table2_id ?
...
Рейтинг: 0 / 0
ТРИГЕР вставить в таблицу - trigger insert into table
    #36195110
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
AndreJ8,

Как-то так:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE FUNCTION table2_a_i()
  RETURNS trigger AS
$BODY$
BEGIN
  INSERT INTO table3(
            table2_id)
    VALUES (NEW.id);
  
  RETURN NEW;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST  100 ;
Код: plaintext
1.
2.
3.
4.
 CREATE TRIGGER table2_a_i_tr
  AFTER INSERT
  ON table2
  FOR EACH ROW
  EXECUTE PROCEDURE table2_a_i();
...
Рейтинг: 0 / 0
ТРИГЕР вставить в таблицу - trigger insert into table
    #36196242
AndreJ8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
именно все так и заработало
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ТРИГЕР вставить в таблицу - trigger insert into table
    #39306594
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreJ8, спасибо, тоже пригодилось)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ТРИГЕР вставить в таблицу - trigger insert into table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]