postgresql - 如何在 postgresql 中创建函数以返回列值并更新表以及 x 锁定表?
问题描述
我有一个表名 xyz,单列 C1 的值为 100
CREATE OR REPLACE FUNCTION get_complaintID ()
RETURN TABLE (
complaintID VARCHAR
)
AS $$
BEGIN
RETURN QUERY SELECT
complaintID
FROM
getcomplaint
END; $$
LANGUAGE 'plpgsql';
当我将调用此函数时,它应该返回值 100 并用加一更新表,例如 100+1 每次我调用该函数时它应该返回表的值并用一更新表值。之后,它应该在桌子上应用 x 锁
解决方案
不,它不应该锁定桌子。您想锁定该行,以便在您完成之前没有其他人可以做同样的事情。
UPDATE getcomplaint
SET complaintID = complaintID + 1
RETURNING complaintID - 1;
这将自动锁定该行并阻止尝试执行相同操作的其他所有人。
推荐阅读
- vue.js - 来自 API 的数据未显示在页面源 nuxtjs 中
- django - 覆盖保存方法在 Django Rest Framework 中不起作用
- r - 朴素贝叶斯中的因子(0)?
- html - 如何创建可编辑的 JQuery 数据表
- python - 为什么 Twitter Stream API 结果与 Twitter Search API 不同?
- python - 不是为什么输入变量不会从 NoneType 切换到 string
- reactjs - 将第 3 方输入道具集成到 Material UI 的 TextField
- node.js - NodeJS 服务器加载循环
- r - 缺少参数“no”,在 R 中没有默认值
- reactjs - 使用 springBoot 和 ReactJs 通过文件上传添加额外数据