带有 NOT EXIST 语句的 IF 语句中的 Postgres 语法错误
Postgres syntax error in IF statement with NOT EXIST statement
我想在插入中使用 IF
语句。
INSERT INTO <table_name>(<columns>)
VALUES (IF NOT EXISTS (<exist_statement>) THEN
(<first set of values>),
(<second set of values>)
ELSE
(<first set of values>)
END IF
);
但是出现如下错误:
syntax error at or near "NOT"
LINE 1: ...r_id, role_id, role_type, user_status) VALUES (IF NOT EXISTS...
^
我试着把这段代码放在 DO
:
DO $$
BEGIN
<code_block>
END
$$
但错误依旧。
您需要使用case
:
INSERT INTO <table_name>(<columns>)
VALUES (CASE WHEN NOT EXISTS (<exist_statement>) THEN
(<first set of values>),
(<second set of values>)
ELSE
(<fist set of values>)
END
);
我想在插入中使用 IF
语句。
INSERT INTO <table_name>(<columns>)
VALUES (IF NOT EXISTS (<exist_statement>) THEN
(<first set of values>),
(<second set of values>)
ELSE
(<first set of values>)
END IF
);
但是出现如下错误:
syntax error at or near "NOT"
LINE 1: ...r_id, role_id, role_type, user_status) VALUES (IF NOT EXISTS...
^
我试着把这段代码放在 DO
:
DO $$
BEGIN
<code_block>
END
$$
但错误依旧。
您需要使用case
:
INSERT INTO <table_name>(<columns>)
VALUES (CASE WHEN NOT EXISTS (<exist_statement>) THEN
(<first set of values>),
(<second set of values>)
ELSE
(<fist set of values>)
END
);