簡體   English   中英

僅在滿足特定條件時才執行insert語句

[英]execute insert statement only if a certain condition is met

我想只在滿足某個條件時才運行insert語句。 有沒有辦法在純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;

假設您要插入值42,那么如果沒有一行,則以下內容僅插入一行:

insert into lock_table (userid) 
select 42
where not exists (select 1 from lock_table where userid = 42);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM