Ad
Postgres Syntax Error In IF Statement With NOT EXIST Statement
I want to use IF
statement in insertion.
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
);
But the following error appears:
syntax error at or near "NOT"
LINE 1: ...r_id, role_id, role_type, user_status) VALUES (IF NOT EXISTS...
^
I tried putting this block of code in the DO
:
DO $$
BEGIN
<code_block>
END
$$
But the error remains.
Ad
Answer
You need to use 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
);
Ad
source: stackoverflow.com
Related Questions
- → I can't do a foreign key, constraint error
- → How to implement DbDongle::convertTimestamps as workaround of invalid timestamps with MySql strict
- → MySQL error "Foreign key constraint is incorrectly formed"
- → Eloquent Multitable query
- → "Laravel 5.1" add user and project with userId
- → Database backup with custom code in laravel 5 and get the data upto 10 rows from per table in database
- → Laravel 5.1 QueryException when trying to delete a project
- → Using Array in '->where()' for Laravel Query Building
- → Chaining "Count of Columns" of a Method to Single Query Builder
- → Laravel Eloquent Joining Strange query
- → convert time using mysql laravel 5
- → How to update a column after an expiration date in MySQL?
- → Foreign key constraint fails on existing key
Ad