INSERT не поддерживает синтаксис WHERE, в вашем случае есть несколько способов:
1) в тупую сделать отдельно два запрос первый это который у вас в скобочках и в коде проверить есть ли что и тогда делать INSERT
2) сделать в таблице name уникальным полем и тогда будет ошибка при вставке
3) в postregsql есть такая вещь как upsert
https://wiki.postgresql.org/wiki/UPSERT4) можно делать вставку процедурой и использовать условные оператор IF
5) ещё есть такой способ
INSERT INTO users (name)
SELECT 'somename'
WHERE
NOT EXISTS (
SELECT name FROM users WHERE name='somename'
);
Не уверен насчёт последнего, но ты всегда можешь попробовать
прошу подправить мой подзапрос для вставки данных ТОЛЬКО в том случае если они отсутствуют.
INSERT INTO users (name) VALUES('somename') WHERE NOT EXISTS (SELECT name FROM users WHERE name='somename');
В данный момент ругается на синтаксис возле WHERE:
near "WHERE": syntax error: INSERT INTO....
PS: В курсе про UNIQUE() но пока требуется реализовать именно так.