我想仅在满足特定条件时运行插入语句。有没有办法用纯sql来做到这一点?
我想在 pl/pgsql 中做的一个例子:
CREATE OR REPLACE FUNCTION set_search_lock (
userid IN integer,
)
RETURNS boolean AS $body$
DECLARE
BEGIN
PERFORM 'A' FROM LOCK_TABLE WHERE USERID = userid LIMIT 1;
IF NOT FOUND THEN
INSERT INTO LOCK_TABLE (USERID) VALUES (userid);
RETURN true;
ELSE
RETURN false;
END IF;
END;
$body$
LANGUAGE PLPGSQL;
Run Code Online (Sandbox Code Playgroud)
小智 5
假设您要插入值 42,则以下命令将仅插入一行(如果还没有行):
insert into lock_table (userid)
select 42
where not exists (select 1 from lock_table where userid = 42);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5157 次 |
| 最近记录: |