powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вставка записив курсор
4 сообщений из 4, страница 1 из 1
вставка записив курсор
    #33957258
shewa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня уважаемые.
Помогите пожалуйста разобраться в чем дело.
Значит суть задачи такова , что бы разным пользователям был доступ к одной таблице но конкретных записей.
Принято решения создать курсор для каждого пользователя и назначить на него права, курсор одинаков и в нем меняется для идентификации только одно поле.
Суть вопроса такова:
как организовать вставку удаление и модификацию в курсор.
Делаю следующее - создаю курсор
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
CREATE OR REPLACE VIEW "mnadmin"."test" (
    id,
    ats,
    dslam,
    port,
    kros,
    phone,
    adress,
    abonent,
    datawork,
    kod,
    statusconnect,
    typeconnect,
    groups,
    city,
    spec,
    modem,
    mserial,
    outcospp,
    incospp,
    aboncontact,
    abonphone,
    abonip,
    lanip,
    wanip,
    nodename,
    abonlogin,
    action,
    tarifplan,
    snrdown,
    snrup,
    shleyf,
    linelength,
    pristroy,
    kabel,
    rg11,
    rozet11,
    expl,
    who,
    comments)
AS
SELECT abonent_test.id, abonent_test.ats, abonent_test.dslam,
    abonent_test.port, abonent_test.kros, abonent_test.phone,
    abonent_test.adress, abonent_test.abonent, abonent_test.datawork,
    abonent_test.kod, abonent_test.statusconnect, abonent_test.typeconnect,
    abonent_test.groups, abonent_test.city, abonent_test.spec,
    abonent_test.modem, abonent_test.mserial, abonent_test.outcospp,
    abonent_test.incospp, abonent_test.aboncontact, abonent_test.abonphone,
    abonent_test.abonip, abonent_test.lanip, abonent_test.wanip,
    abonent_test.nodename, abonent_test.abonlogin, abonent_test."action",
    abonent_test.tarifplan, abonent_test.snrdown, abonent_test.snrup,
    abonent_test.shleyf, abonent_test.linelength, abonent_test.pristroy,
    abonent_test.kabel, abonent_test.rg11, abonent_test.rozet11,
    abonent_test.expl, abonent_test.who, abonent_test.comments
FROM mnadmin.abonent_test
WHERE ((abonent_test.city)::text = 'Õìåëüíèöüêèé'::text);
но при вставке в него записей возникает ошибка того , что необходимо
создать правило
Создаю правило такого вида
Код: plaintext
1.
INSERT INTO mnadmin.test (id, ats, dslam, port, kros, phone, adress, abonent, datawork, kod, statusconnect, typeconnect, groups, city, spec, modem, mserial, outcospp, incospp, aboncontact, abonphone, abonip, lanip, wanip, nodename, abonlogin, "action", tarifplan, snrdown, snrup, shleyf, linelength, pristroy, kabel, rg11, rozet11, expl, who, comments) 
VALUES (new.id, new.ats, new.dslam, new.port, new.kros, new.phone, new.adress, new.abonent, new.datawork, new.kod, new.statusconnect, new.typeconnect, new.groups, new.city, new.spec, new.modem, new.mserial, new.outcospp, new.incospp, new.aboncontact, new.abonphone, new.abonip, new.lanip, new.wanip, new.nodename, new.abonlogin, new."action", new.tarifplan, new.snrdown, new.snrup, new.shleyf, new.linelength, new.pristroy, new.kabel, new.rg11, new.rozet11, new.expl, new.who, new.comments);
Возникает ошибка о том что правило рекурсивное.
В чем проблема , как сделать правильно?
Заранее спасибо.
...
Рейтинг: 0 / 0
вставка записив курсор
    #33957301
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВО ВЬЮХИ НЕЛЬЗЯ ВСТАВЛЯТЬ ДАННЫЕ!!!


=====================================
Страну, в которой все ходят на бровях,
на колени не поставишь...
=====================================
...
Рейтинг: 0 / 0
вставка записив курсор
    #33957701
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кувалдин РоманВО ВЬЮХИ НЕЛЬЗЯ ВСТАВЛЯТЬ ДАННЫЕ!!!правда? "а мужики и не знают"

могабыть перечитаете доку по части RULE
34.3. Rules on INSERT, UPDATE, and DELETE
34.3.2. Cooperation with Views


другое дело, что руле - вещь в ПГ сильно кривая. но таки существующая.
...
Рейтинг: 0 / 0
вставка записив курсор
    #33957746
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shewa
Создаю правило такого вида
Код: plaintext
INSERT INTO mnadmin.test (id
Возникает ошибка о том что правило рекурсивное.
В чем проблема , как сделать правильно?
Заранее спасибо.в правиле надо инсертить не в само вью (что действительно рекурсивно по оперделению), а в _таблицы_ - его источник

Код: plaintext
1.
2.
3.
4.
5.
CREATE RULE xxx AS ON INSERT TO mnadmin.test 
    DO INSTEAD 
INSERT INTO  mnadmin.abonent_test
(id
,..
,..
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вставка записив курсор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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