powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сделать такое в триггере?
7 сообщений из 7, страница 1 из 1
Как сделать такое в триггере?
    #39267533
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create table userinfo
( id int not null,
  full_name varchar(1024),
  user_name varchar(128),
  user_host varchar(128),
  user_ip4 varchar(128),
  user_ip6 varchar(128)
)



в которую добавляется запись

Код: sql
1.
insert into userinfo(full_name)


Здесь full_name имеет формат

Код: sql
1.
'domain\petya#petin_computer#192.168.1.2#::1'



Чего хотелось бы:

в триггере разобрать строку с разделителем слов # и заполнить оставшиеся 4 поля

Как это сделать в триггере?
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39267537
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинКак это сделать в триггере?Заплатить сокласснику.
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39267555
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинКак это сделать в триггере?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE userinfo (
  id        serial  not null,
  full_name text    not null,
  user_name text,
  user_host text,
  user_ip4  text,
  user_ip6  text
);
CREATE OR REPLACE FUNCTION tf_users() RETURNS trigger AS $t_users$
BEGIN
  NEW.user_name=coalesce(NEW.user_name,split_part(NEW.full_name,'#',1));
  NEW.user_host=coalesce(NEW.user_host,split_part(NEW.full_name,'#',2));
  NEW.user_ip4=coalesce(NEW.user_ip4,split_part(NEW.full_name,'#',3));
  NEW.user_ip6=coalesce(NEW.user_ip6,split_part(NEW.full_name,'#',4));
  RETURN NEW;
END; $t_users$ LANGUAGE plpgsql;
CREATE TRIGGER b_userinfo BEFORE INSERT OR UPDATE ON userinfo FOR EACH ROW EXECUTE PROCEDURE tf_users();

INSERT INTO userinfo(full_name) VALUES ('domain\petya#petin_computer#192.168.1.2#::1');
SELECT * FROM userinfo;
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39267564
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.Ролг ХупинКак это сделать в триггере?Заплатить сокласснику.

что это - "соклассник"?
Давай я тебе заплачу, сколько?
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39267565
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovРолг ХупинКак это сделать в триггере?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE userinfo (
  id        serial  not null,
  full_name text    not null,
  user_name text,
  user_host text,
  user_ip4  text,
  user_ip6  text
);
CREATE OR REPLACE FUNCTION tf_users() RETURNS trigger AS $t_users$
BEGIN
  NEW.user_name=coalesce(NEW.user_name,split_part(NEW.full_name,'#',1));
  NEW.user_host=coalesce(NEW.user_host,split_part(NEW.full_name,'#',2));
  NEW.user_ip4=coalesce(NEW.user_ip4,split_part(NEW.full_name,'#',3));
  NEW.user_ip6=coalesce(NEW.user_ip6,split_part(NEW.full_name,'#',4));
  RETURN NEW;
END; $t_users$ LANGUAGE plpgsql;
CREATE TRIGGER b_userinfo BEFORE INSERT OR UPDATE ON userinfo FOR EACH ROW EXECUTE PROCEDURE tf_users();

INSERT INTO userinfo(full_name) VALUES ('domain\petya#petin_computer#192.168.1.2#::1');
SELECT * FROM userinfo;



вот, что надо.
спасибо!
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39267646
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупинчто это - "соклассник"?То, что принадлежит тому же классу.Одна из классификаций класса Класс (лат. classis , мн. ч. classes ) — один из основных рангов иерархической классификации в биологической систематике.

В иерархии систематических категорий класс стоит ниже типа и выше отряда (в зоологической систематике) и ниже отдела и выше порядка (в ботанической систематике).

Примеры:
Бабочка-капустница ( Pieris brassicae ) относится к классу Насекомые ( Insecta ).

Растение Пиерис японский ( Pieris japonica ) относится к классу Двудольные ( Magnoliopsida ).
...
Рейтинг: 0 / 0
Как сделать такое в триггере?
    #39268156
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.Ролг Хупинчто это - "соклассник"?То, что принадлежит тому же классу.Одна из классификаций класса Класс (лат. classis , мн. ч. classes ) — один из основных рангов иерархической классификации в биологической систематике.

В иерархии систематических категорий класс стоит ниже типа и выше отряда (в зоологической систематике) и ниже отдела и выше порядка (в ботанической систематике).

Примеры:
Бабочка-капустница ( Pieris brassicae ) относится к классу Насекомые ( Insecta ).

Растение Пиерис японский ( Pieris japonica ) относится к классу Двудольные ( Magnoliopsida ).


растение пиерис плть
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сделать такое в триггере?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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