Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вставка записив курсор / 4 сообщений из 4, страница 1 из 1
01.09.2006, 08:18
    #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
01.09.2006, 08:51
    #33957301
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вставка записив курсор
ВО ВЬЮХИ НЕЛЬЗЯ ВСТАВЛЯТЬ ДАННЫЕ!!!


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

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


другое дело, что руле - вещь в ПГ сильно кривая. но таки существующая.
...
Рейтинг: 0 / 0
01.09.2006, 11:14
    #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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вставка записив курсор / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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