У меня есть следующий код SQL, который я хотел бы выполнить для базы данных Postgresql:
sql"""WITH s AS (
SELECT id
FROM $tableName
WHERE $columnName = $value
), i AS (
INSERT INTO $tableName ($columnName)
SELECT $value
WHERE NOT EXISTS (
SELECT id
FROM $tableName
WHERE $columnName = $value
)
RETURNING id
)
SELECT id
FROM i
UNION ALL
SELECT id
FROM s
"""
Если я использую update
или updateAndRetrieveGeneratedKey
в пределах localTx
, я получаю org.postgresql.util.PSQLException: A result was returned when none was expected.
.Если я использую single
в readOnly
, я получаю что-то вроде ... cannot perform an insert in a read only query
.Как правильно это сделать?