【发布时间】:2016-06-07 07:37:58
【问题描述】:
我通过 Hiberante 从几个线程调用这个 Postgres 函数:
UPDATE table SET active = _active
WHERE id IN (
SELECT id FROM table
WHERE active = 0 ORDER BY id LIMIT 5);
SELECT count('PK') INTO cnt FROM table WHERE active = _active;
IF(cnt > 0)THEN
FOR ret IN
SELECT * FROM table WHERE active = _active
LOOP
RETURN NEXT ret;
END LOOP;
END IF;
我为几个线程获取数据,处理它,然后从表中删除。安全吗?我应该使用“选择更新”还是其他什么?
【问题讨论】:
标签: hibernate postgresql transactions