Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.10.2006, 10:54
|
|||
|---|---|---|---|
|
|||
FUNCTION & UPDATE |
|||
|
#18+
Добрый день, FreeBSD 6.1 + Postgresql 8.1.3 Есть табличка 'gateways' содержащая имена устройств, и их приоритеты. Необходимо изменять данные приоритеты после/при каждой выборки, т.е. SELECT, приоритеты необходимы чтобы выбирать записи в порядке "карусели". Если вызывать отдельно запрос UPDATE то все прекрасно меняется, если же запрос находится в теле функции, то не происходит смены приоритетов. Подскажите пожалуйста в чем может быть проблемы? CREATE TABLE gateways ( id bigserial not null, name varchar(64) NOT NULL DEFAULT ''::character varying, priority int4 DEFAULT 0, CONSTRAINT gateways_pkey PRIMARY KEY (id) ); INSERT INTO gateways (name, priority) VALUES('gw1', 0); INSERT INTO gateways (name, priority) VALUES('gw2', 1); CREATE OR REPLACE FUNCTION getanswer(gw varchar) RETURNS text AS $$ DECLARE BEGIN update gateways set priority = mod((priority + 1), (select count(*) from gateways)); return gw; END; $$ LANGUAGE 'plpgsql'; SELECT getanswer(name) FROM gateways; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.10.2006, 11:50
|
|||
|---|---|---|---|
|
|||
FUNCTION & UPDATE |
|||
|
#18+
SELECT getanswer(name) FROM gateways; при этом функци вызывается два раза, так как в gateways две строки, и меняет приоритеты дважды приводя их к исходному состоянию. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2006048]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 332ms |

| 0 / 0 |
